irpas技术客

SpringCloud整合Zookeeper替代Eureka(服务注册之二)_yushun

大大的周 7227

Zookeeper下载地址

https://archive.apache.org/dist/zookeeper/?C=M;O=D

这里注意zppkeeper自zookeeper-3.5.4-beta 后就会有两个tar.gz 包 否则启动会报错 (注:zookeeper启动需要依赖JDK,所以linux下需要安装JDK,建议linux安装版本与代码版本的zookeeper一致否则启动会报错)

Linux安装zookeeper 1、下载好后解压 tar -zxvf apache-zookeeper-x.x.x-bin.tar.gz 2、编辑配置文件进入conf目录将zoo_sample.cfg 拷贝一份并重命名为zoo.cfg cp zoo_sample.cfg /conf完整路径/zoo.cfg 3、在dataDir 下添加log日志路径(dataDir和dataLogDir 可自定义但路径必须存在,不存在则创建) dataLogDir=/tmp/zookeeper/log 4、进入 /etc 路径下找到profile编辑(export ZOOKEEPER_INSTALL=zookeeper路径) export ZOOKEEPER_INSTALL=/opt/zookeeper/apache-zookeeper-3.6.3-bin/ export PATH=$PATH:$ZOOKEEPER_INSTALL/bin 5、刷新一下环境配置文件 source /etc/profile 6、配置好了环境后启动就不需要前往bin目录了(注册服务需先启动zookeeper否则代码会报错未连接) zkServer.sh start #启动 zkServer.sh stop #停止 zkServer.sh status #查看状态

代码配置 1)pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> </dependency>

这里注意linux安装版本与代码版本要一致如果不一致的话排除掉 报错如下 先排除自带的zookeeper版本,在引入和linux上的相同版本

<!--springboot整合zookeeper客户端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <exclusions> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> </exclusions> </dependency> <!--先排除自带的zookeeper版本,在引入和linux上的相同版本--> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>这里为linux上的版本</version> </dependency> 2)application.properties #服务名称 spring.application.name=cloud-pay-service #zookeeper连接 spring.cloud.zookeeper.connect-string=47.108.71.54:2181 3)启动类加注解@EnableDiscoveryClient(服务发现)

服务发现可以看我的另外一篇博客

https://editor.csdn.net/md/?articleId=122484906

import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @EnableDiscoveryClient 4)启动项目并查看linux中服务是否注册

项目启动成功后进入zookeeper的bin目录使用命令

./zkCli.sh

ls /(ls和/中间有空格,这里是显示zookeeper中的服务,如果没有注册的话会默认显示zookeeper,启动项目成功后会多一个服务)

使用json工具排版后我们会发现里面包含了注册服务的基本信息

5)Zookeeper为临时节点

上面说到的是创建临时节点,关闭项目服务后如果zookeeper没有收到心跳包则会在一段时间过后自动剔除(类似Eureka)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #后就会有两个targz #zxvf #apachezookeeper