文章目录
SpringCloud整合Zookeeper代替Eureka
总浏览图
关闭Linux服务器防火墙后启动zookeeper服务器
首先关闭linux服务器的防火墙,如下图:
启动zookeeper服务器,如下图:
ping一下不同服务器能否正常打通
目前我的zookeeper注册中心服务是在主机为182.92.210.39的Linux服务器,我的java程序是在Windows10,所以这两台机器必须要能实现互相可以ping的通,如下图:
首先查看java程序所在的Windows电脑的ip地址,也即是我的本机的ip地址,如下图:
接着在Linux服务器上ping一下本机ip地址,看看能否可以ping的通,如下图:
用本机去ping我们的linux服务器,如下图:
服务提供者
新建cloud-provider-payment8004
写POM
pom文件中的内容可以复制之前的8001服务中的内容,但是需要新加一个SpringBoot与zookeeper的整合,如下图:
写YML
写主启动类
Controller
启动8004注册进zookeeper
第一次启动的时候,由于zookeeper的版本冲突会启动失败,如下图:
在pom文件中排除并更改spring-cloud的zk中自带的zookeeper版本,如下图:
上面的slf4j无需排除,slf4j是在外来的引入的zookeeper依赖里面排除的。
最后发现这样也会出现一个冲突的错误,因为zookeeper中也有一个自带的slf4j包,会发生版本冲突,所以zookeeper中的slf4j这个包也需要排除掉,如下图:
但是这样仍然不能成功启动,会报下图错误,如下图:
重新加上数据源之后,如下图:
再重新启动,发现bug消失,成功启动,如下图:
验证测试
去linux服务器下面的zookeeper中查看一下,看看微服务是否被注册到了zookeeper中,如下图:
服务消费者
新建cloud-consumerzk-order80
POM
pom文件中的内容和提供者服务8004一样,直接把8004中的内容复制过来就行了,如下图:
YML
直接从8004服务的yml文件中复制过来就行,如下图:
主启动
业务类
首先需要用RestTemplate进行RPC远程过程调用,所以需要先写一个关于RestTemplate的配置类,如下图:
然后再写一个Controller控制器,通过里面的方法进行远程调用,如下图:
验证测试
启动8004服务和80服务,如下图:
然后去linux服务器中的zookeeper中查看注册进来的微服务,如下图: