使用Spring Cloud Zookeeper
Spring Cloud支持作为微服务架构一部分的各种产品。 例如,在阅读本章过程中,开发人员可以将Consul与作为发现工具的Eurcka进行比较,也可以将Consul与作为分布式配置工具的Spring Cloud Config进行比较,通过这种比较,可以对Spring Cloud所支持产品的丰富性有更加深刻的认识。Zookeeper是另一种解决方案,它可以作为之前列出的产品的替代选择。与Consul 一样,它可用于服务发现和分布式配置。要在项目中启用Spring Cloud Zookeeper, 应该包含用于服务发现功能的spring cloud-starter. zookeeper-discovery启动器,或用于配置服务器功能的spring-cloud-starter-zookeeper config启动器。
或者,开发人员也可以声明一个spring- cloud-starter zookeeper-all依赖项,它可以激活应用程序的所有功能。当然,也不要忘记包含spring boot starter-web,因为它仍然需要提供Web功能。
<dependency>
<groupId>org. springframework. cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-all</atifactId>
</ dependency>
<dependency>
<groupId>org.springframework,boot</groupId>
<arti factId>spring-boot-starter-web</artifactId>
</dependency>
Zookeeper连接设置是自动配置的。默认情况下,客户端会尝试连接到localhost:2181.要覆盖它,应该使用当前服务器网络地址定义spring.cloud zookeeper cnct-string属性。
spring:
cloud:
zookeeper:
connect-string: 192.168.99.100:2181
与Spring Cloud Consul-一样, Zookeeper 支持Spring Cloud Netlix提供的所有最流行的通信库,如Feign、 Ribbon、 Zuul 或Hystrix。在开始处理示例实现之前,开发人员必须先启动Zookeeper实例。
运行 Zookeeper
为简便起见,可以使用Docker镜像在本地计算机上启动Zookeeper.以下命令将启动Zookeeper服务器实例。由于它有快速失败(Fails Fast)机制,所以最好的方法是始终重新启动它。
docker run -d --name zookeeper