一、简介
Zookeeper 可作为注册中心,实现服务注册与发现,当服务启动后,就会注册到 Zookeeper,然后保存该服务的地址以以及一些基本的信息,其他服务可从注册中心获取到该服务的地址,进行 RPC 远程调用,和 Eureka 作为注册中心同理,Eureka 和 Zookeeper 的区别在于 Eureka 保证 AP,也就是保证高可用和分区容错,Zookeeper 保证 CP,也就是保证一致性和分区容错。
二、实例
1、创建 SpringBoot 项目添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.8</version>
</dependency>
</dependencies>
2、编写服务注册代码
编写一个类实现 ApplicationRunner 接口,然后注册到 Spring 容器中,当我们启动 Spring 项目后,就会执行以下代码把该服务注册到 Zookeeper,我们可以修改 yml 配置文件中的端口号,分别注册多个实例。
@Component
public class MyApplicationRunner implements ApplicationRunner {
@Value("${server.port}")
private String port;
private