【学习背景】
在前面学习到了使用Eureka作为注册中心,基于Spring Cloud实现服务的发布与调用。而在18年7月份,Eureka2.0宣布闭源了,将不再进行开发,所以对于公司技术选型来说,可能会换用其他方案做注册中心。本篇博客学习便是使用Zookeeper作为注册中心,下面主要是总结下搭建过程。
【学习内容】
在接触dubbo的框架的时候,用的注册中心就是Zookeeper,现在看来也不算新东西了。
1. 安装Zookeeper
先在电脑上安装好Zookeeper
下载好之后,直接在/bin目录下,启动zkServer.cmd即可,如下就表示启动成功:
2. 搭建Spring Cloud基础框架
使用Zookeeper作为注册中心,和Eureka不同的是,我们不需要再搭建一个Server,直接搭建实现服务发布和调用的客户端即可。
我继续在前面学习的Eureka注册中心的项目中新建了一个Module,作为Zookeeper注册中心的服务提供者,
添加Zookeeper客户端依赖:
3. 启动项目,报错如下:
查询资料,在Spring Cloud Zookeeper2.0 发布相关文章中,看到第二个问题便是我遇到的问题:
问题的原因是Zookeeper服务端和Curator版本不兼容的问题。项目中的依赖是Spring Boot 2.1,zookeeper-discovery2.1版本中集成的是4.0版本,而我使用的Zookeeper Server版本是3.4。
4. 解决问题,启动成功:
在项目中添加如下依赖即可:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-all</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
至此,问题便得到了解决。我们使用ZooInspector工具,就可以看到我们注册在Zookeeper上的临时节点:
5. 发布服务,访问接口:
在自己学习的过程中,遇到问题其实是很棘手的,毕竟不知道问题所在,只能查各种文章,然后尝试各种方案。