在/usr路径下创建文件夹soft,将zookeeper压缩包解压到此文件夹下
cp zoo_sample.cfg zoo.cfg # 进入usr/soft/zookeeper-3.4.14/conf,将配置文件的样本zoo_sample.cfg复制并重命名为zoo.cfg
vi zoo.cfg # 修改配置文件,添加两个路径
vim /etc/profile # 配置环境变量,最末尾添加如下
export ZOOKEEPER_HOME=/usr/soft/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile # 使用配置生效
firewall-cmd --zone=public --add-port=2181/tcp --permanent # 设置对外开放端口
firewall-cmd --reload # 重启防火墙
zkServer.sh start # 启动zookeeper,显示STARTED则表示启动成功
- 关闭centos防火墙,启动zookeeper服务;zookeeper可以像eureka一样作为服务注册中心
新建一个支付子cloud-provider-payment8004注册进zookeeper服务中心,它相对于订单模块是服务提供者,相对于zookeeper服务是客户端;
在pom中拉取zookeeper的依赖,yml中配置端口、服务名称、zookeeper所在系统的IP+zookeeper对外开放的端口,主启动类添加注解,编写业务逻辑类,
启动微服务后报错,可能为zookeeper版本和项目拉取的jar包版本冲突,解决方案是将jar换成zookeeper的版本
测试:启动zookeeper后,输入:ls /services # 查看注册进zookeeper的服务名称
启动项目后,浏览器输入:http://localhost:8004/payment/zk 同样可以看到每次返回的流水号,这个流水号是自定义任意生成的字符串,相当于当前请求的服务节点
注册进zookeeper服务注册中心的服务是临时的,当停用8004服务后,zookeeper向微服务发送心跳,微服务没有返回,zookeeper服务注册中心就不会保存8004
将服务消费者订单模块注册进zookeeper服务器,新建cloud-consumerzk-order80,配置pom、yml、启动类,编写业务类;启动zookeeper,输入:ls /services