前期工作需要在linux系统中构建jdk环境以及Zookeeper的安装,其中linux我选择的操作系统是Centos7,jdk版本如下:
关于Zookeeper的版本,我这里使用的是3.5.8
这边简短介绍一下Zookeeper的一些命令行操作:
创建命令(create):
- 创建持久化有序节点:create -s /a “aaa”
create -s /b “bbb” - 创建临时节点:create -e /tmp “tmp”
- 创建临时有序节点:create -s -e /aa ‘aaa’
create -s -e /bb ‘bbb’
获取命令(get):
- 获取节点内容:get /a
修改节点(set):
- set /tmp “dad”
监听器(get path [watch])
授权(acl):
- setAcl
- getAcl
- addauth
为了能够使我们的当前用户能够连接到linux服务器中,我们需要关闭linux的防火墙
systemctl stop firewalld
并且确保服务器连接到了网络,具体测试方法可以在终端输入
ping www.baidu.com
如果可以间断性获得消息发送则确定网络已连接
接下来我们打开idea,创建maven module,并且在pom文件中写入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
</dependencies>
之后的具体controller和main class中的代码可以参考我的代码仓库:
server部分代码
接下来我们进入到服务器终端,开启zkServer
./zkServer.sh start
并且开启zkClient
./zkCli.sh
当我们输入一下命令时,会得到payment节点注册(该节点是临时节点,而非持久节点)
其中打开网页测试server节点,结果如下
如此可以确定我们的服务器端注册已经完成
接下来开始实现Consumer端的注册服务:
创建mvn仓库,其中pom文件内容与server部分的依赖基本相同,额外需要加一条
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
具体内容部分的代码可以详见我github仓库
consumer部分代码
同样的我们运行程序后打开服务器终端输入命令进行测试
打开网页测试consumer节点,结果如下
至此完成两个服务的注册进入zookeeper
本文参考:尚硅谷springcloud2020最新教程