1.导入依赖 注意:他自带的版本为3.5.3 可能引起jar包冲突而报异常 所以这里先排除一下他自带的版本 再引入不冲突的版本例如 3.4.9
<!-- SpringBoot整合zookeeper客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!--先排除自带的zookeeper3.5.3-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加zookeeper3.4.9版本-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</dependency>
2.编写配置文件
server:
port: 8004 #tomcat端口号
spring:
application:
name: cloud-provider-payment #服务名
cloud:
zookeeper:
connect-string: 192.168.200.132:2181 #虚拟机地址和zookeeper端口号
3.打开虚拟机关闭防火墙 或者开放zookeeper端口 命令:
systemctl stop friewalld
4.进入zookeeper bin目录下 启动zookeeper 并且查看zookeeper状态 命令:
./zKserver.sh start
./zKserver.sh status
5.当查看状态后发现以下信息 则表示单机启动成功
Mode: standalone
6.启动zookeeper客户端
./zkCli.sh
7.当发现这条信息的时候则代表客户端启动成功
8.进入客户端后 输入命令查看zookeeper服务发现目前为空 因为idea中还没有启动项目没有把服务注册到zookeeper
get zookeeper
?9.启动zookeeper工程 输入controller中的RequestMapping地址
10.可以看到浏览器中打印了return中返回的信息? 通过命令那么再来看一下虚拟机中的zookeeper
此时 可以看到我们的服务已经注册到zookeeper中了? 这个服务名就是配置文件中写的
11.再来通过命令查看一下这个服务的信息 可以发现输出的是一条流水号
?12.继续深挖通过命令查看流水号中的信息 可以看到打印的是json格式的数据?
13.再用json工具将其解析 此时就可以看到这条json数据打印的信息了 我们的服务也注册到了zookeeper 完工!
{
"name":"cloud-provider-payment",
"id":"bd454841-fb96-4d3f-93d3-83f9276e2213",
"address":"192.168.200.1",
"port":8004,
"sslPort":null,
"payload":{
"@class":"org.springframework.cloud.zookeeper.discovery.ZookeeperInstance",
"id":"application-1",
"name":"cloud-provider-payment",
"metadata":{
}
},
"registrationTimeUTC":1625852402255,
"serviceType":"DYNAMIC",
"uriSpec":{
"parts":[
{
"value":"scheme",
"variable":true
},
{
"value":"://",
"variable":false
},
{
"value":"address",
"variable":true
},
{
"value":":",
"variable":false
},
{
"value":"port",
"variable":true
}
]
}
}
|