weblog/doc/10、K-V 短文本存储服务搭建与开发/10.4 KV 键值存储微服务搭建.md
2025-02-17 11:57:55 +08:00

9.4 KiB
Raw Blame History

title, url, publishedTime
title url publishedTime
KV 键值存储微服务搭建 - 犬小哈专栏 https://www.quanxiaoha.com/column/10321.html null

在之前小节中,我们已经将 Cassandra 的本地环境搭建起来了。本小节中,着手把 KV 键值存储微服务建好。

新建父模块

打开 IDEA, 在 xiaohashu 文件上右键,依次点击 New | Module, 新建一个子模块项目:

弹出框中,填写项目相关信息:

解释一下相关配置项的作用:

  • ①:选择 Maven Archetype 来创建一个 Maven 项目;
  • ②:项目名称,填写 xiaohashu-kv
  • ③: 通过使用 Archetype你可以基于已有的项目模板创建一个新项目。这里选择 maven-archetype-site-simple

点击 Create 按钮,开始创建子模块项目。等待控制台提示 Build Success , 说明项目创建完成。这里将 /src 目录删除掉,如下图所示,只保留一个 pom.xml

同时,xiaohashu-kv 键值存储服务项目创建完成后,打开项目的最外层 pom.xml , 你会发现 <modules> 节点下已经自动将此模块添加进来管理了:

    <!-- 子模块管理 -->
    <modules>
        // 省略...
        
        <!-- KV 键值存储服务 -->
        <module>xiaohashu-kv</module>
    </modules>

编辑 xiaohashu-kv 中的 pom.xml 文件,修改依赖如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- 指定父项目 -->
    <parent>
        <groupId>com.quanxiaoha</groupId>
        <artifactId>xiaohashu</artifactId>
        <version>${revision}</version>
    </parent>

    <!-- 多模块项目需要配置打包方式为 pom -->
    <packaging>pom</packaging>

    <!-- 子模块管理 -->
    <modules>
    </modules>

    <artifactId>xiaohashu-kv</artifactId>
    <!-- 项目名称 -->
    <name>${project.artifactId}</name>
    <!-- 项目描述 -->
    <description>Key-Value 键值存储服务</description>

</project>

新建 api 子模块

父模块新建完毕后。在 xiaohashu-kv 文件夹上 右键 | New | Modules , 在键值存储微服务中,新建一个子模块:

填写子模块相关信息:

解释一下相关配置项的作用:

  • ①:选择 Maven Archetype 来创建一个 Maven 项目;
  • ②:子模块名称,填写 xiaohashu-kv-api
  • ③: 通过使用 Archetype你可以基于已有的项目模板创建一个新项目。这里选择 maven-archetype-quickstart
  • ④: 包名称填写 com.quanxiaoha.xiaohash.kv;

点击 Create 按钮开始创建子模块。创建完成后,如下图所示,将不需要的 App/test 删除掉:

编辑 xiaohashu-kv-api 模块的 pom.xml , 修改依赖如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- 指定父项目 -->
    <parent>
        <groupId>com.quanxiaoha</groupId>
        <artifactId>xiaohashu-kv</artifactId>
        <version>${revision}</version>
    </parent>

    <!-- 打包方式 -->
    <packaging>jar</packaging>

    <artifactId>xiaohashu-kv-api</artifactId>
    <name>${project.artifactId}</name>
    <description>RPC层, 供其他服务调用</description>

    <dependencies>
        <dependency>
            <groupId>com.quanxiaoha</groupId>
            <artifactId>xiaoha-common</artifactId>
        </dependency>
    </dependencies>
</project>

新建 biz 子模块

继续在 xiaohashu-kv 键值服务上 右键 | New | Module, 创建一个 biz 业务子模块:

填写相关配置项:

解释一下相关配置项的作用:

  • ①:选择 Maven Archetype 来创建一个 Maven 项目;
  • ②:子模块名称,填写 xiaohashu-kv-biz
  • ③: 通过使用 Archetype你可以基于已有的项目模板创建一个新项目。这里选择 maven-archetype-quickstart
  • ④: 包名称填写 com.quanxiaoha.xiaohash.kv.biz;

点击 Create 按钮,开始创建子模块项目。等待项目创建完成后,将不需要的类删除,如下图所示:

编辑 xiaohashu-kv-biz 模块的 pom.xml , 修改依赖如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- 指定父项目 -->
    <parent>
        <groupId>com.quanxiaoha</groupId>
        <artifactId>xiaohashu-kv</artifactId>
        <version>${revision}</version>
    </parent>

    <!-- 打包方式 -->
    <packaging>jar</packaging>

    <artifactId>xiaohashu-kv-biz</artifactId>
    <name>${project.artifactId}</name>
    <description>Key-Value 键值存储业务层</description>

    <dependencies>
        <dependency>
            <groupId>com.quanxiaoha</groupId>
            <artifactId>xiaoha-common</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>
</project>

添加 Spring Boot 项目所需文件

接下来,我们将为 xiaohashu-kv-biz 模块添加 Spring Boot 项目所需的一些文件,如下图标注所示:

启动类

com.quanxiaoha.xiaohashu.kv.biz 包下,创建 Spring Boot 的启动类,代码如下:

package com.quanxiaoha.xiaohashu.kv.biz;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class XiaohashuKVBizApplication {

    public static void main(String[] args) {
        SpringApplication.run(XiaohashuKVBizApplication.class, args);
    }

}

配置类

/main 文件夹下,创建 /resource 资源目录,并添加相关 application.yml配置类,可以直接从别的服务中复制一份过来,修改一下,如启动端口。其他暂时不需要的配置先删除,等需要的时候再添加:

server:
  port: 8084 # 项目启动的端口

spring:
  profiles:
    active: dev # 默认激活 dev 本地开发环境

日志配置

复制过来的 logback-spring.xml 日志配置文件,记得将应用名称修改为 kv , 代码如下:

    // 省略...
    
    <!-- 应用名称 -->
    <property scope="context" name="appName" value="kv"/>
    
    // 省略...

启动项目

以上添加完成后,点击 xiaohashu-kv-biz 模块中启动类左侧的启动图标,测试一下项目是否能够正常跑起来:

若控制台提示如上图所示,则表示项目启动正常。

注册到 Nacos

最后,顺便将 KV 键值存储服务注册到 Nacos 上。编辑 xiaohashu-kv-biz 模块的 pom.xml, 添加服务发现需要的依赖,如下:

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

        <!-- 服务发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

/resources 资源目录下创建 bootstrap.yml 配置文件,同样的,可以直接从别的项目复制过来:

记得修改应用名称,这里修改为了 xiaohashu-kv , 与其他服务的名称区分开来,其他不用动:

spring:
  application:
    name: xiaohashu-kv # 应用名称
  profiles:
    active: dev # 默认激活 dev 本地开发环境
  cloud:
    nacos:
      discovery:
        enabled: true # 启用服务发现
        group: DEFAULT_GROUP # 所属组
        namespace: xiaohashu # 命名空间
        server-addr: 127.0.0.1:8848 # 指定 Nacos 配置中心的服务器地址

再次重启服务,并登陆到 Nacos 管理后台,确认一下服务列表中, xiaohashu 命名空间下,键值存储服务是否注册成功,若如下图所示,表示注册成功了。

本小节源码下载

https://t.zsxq.com/MsNe2