9.4 KiB
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 命名空间下,键值存储服务是否注册成功,若如下图所示,表示注册成功了。