默认端口号2181 Zookeeper是一个分布式协调工具,可以实现注册中心功能,可以取代Eureka作为服务注册中心,也是Java实现

1. pom

  1. <!--SpringBoot整合Zookeeper客户端-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
  5. </dependency>

2. yml

  1. spring:
  2. application:
  3. # 服务别名---注册zookeeper到注册中心的名称
  4. name: cloud-provider-payment
  5. cloud:
  6. zookeeper:
  7. # 默认localhost:2181
  8. connect-string: localhost:2181

3. 启动类

@EnableDiscoveryClient

4. 启动zookeeper

参考:Zookeeper 二、安装部署

zkServer.sh start

5. 启动后问题

如果服务端zk和导包zk版本不一致需要解决jar包冲突

<!--SpringBoot整合Zookeeper客户端-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    <exclusions>
        <!--先排除自带的zookeeper3.5.3-->
        <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>

6. 查看服务端zk的znode

image.pngimage.png

7. 思考

思考:服务节点是临时节点还是持久节点? 是临时节点,微服务下线立刻清除掉,再次上线会提供新的流水号,属于CAP中的 CP

image.png