Springcloud整合zookeeper—B站学习
安装zookeeper,启动,关闭防火墙systemctl stop firewalld
解决zookeeper的jar包冲突的引用:在pom文件中排除冲突的zookeeper坐标
由于我们需要将zookeeper的客户端注入进到zookeeper的里面,为了可以顺利使用这个zookeeper我们一定会引用这个gav的坐标
,如下示例代码
例:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
这里面天生带着zookeeper-3.5.3-beta.jar
这个jar包,但由于我们本身或者项目中使用的zookeeper的版本并不是3.5.3所以说就会引发冲突
但是zookeeper一般装了以后不会轻易的发生变动,别的系统也在用,可能同时注册了dubbo或者springcloud,所以说我们只需要做一个jar包的排除和引用就好了,如下示例代码
例:
<!-- 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>
这次之后再启动就可以成功启动了
之后启动zookeeper,进入zookeeper的目录发现多了一个services的分支
最后这个cloud-provider-payment就是即使我们application.yml文件中配置的name属性,这样这个payment模块就成功入驻进zookeeper容器中了
#8004表示注册到zookeeper服务器的支付服务提供者端口号
server:
port: 8004
#服务别名----注册zookeeper到注册中心名称
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
connect-string: 127.0.0.1:2181
相当于一个zookeeper的znode节点,相当于cloud-provider-payment这个微服务存进去了,bb开头的是一个编码流水号
这些是cloud-provider-payment这个微服务在zookeeper上的基本信息,是json串
服务注册进zookeeper是临时节点
订单注入进zookeeper,也就是消费者注入进zookeeper
pom和服务提供者一样,代码内容和Eureka的消费者代码差不多