Zookeeper 集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。
正是基于这个 特性,要将 ZK 集群的节点数量要为奇数(2n+1:如 3、5、7 个节点)较为合适。
zookeeper服务集群工作图:
zookeeper HA集群搭建:
设备信息:
设备:192.168.136.136
设备:192.168.136.137
设备:192.168.136.138
1,首先在三台设备上分别安装单机zookeeper,方法已经在上篇blog介绍过,
2, 接下来修改zoo.cfg配置文件,clientPort=12181(标识①),该端口对 client 端提供服务,
3, 在文件最后端添加三行
server.id=ip:port1:port2
port1:集群内机器通信使用
port2:选举 leader 使用
4,配置myid标志,myid就是每台设备在集群中的唯一标识,这里没有配置data目录,所以在安装的上层目录下配置myid文件,分别为1,2,3.
其他先不改动,三台设备zoo.cfg配置文件如下
先启动136节点zookeeper:
此时日志出现报错是正常现象,因为另外两台还没启动,暂时连接不上。
Error contacting service. It is probably not running.
安装同样的方式启动其他设备,查看zookeeper进程模式如下:
192.168.136.136:leader
192.168.136.137:follower
192.168.136.138:follower
最后显示集群搭建成功!Mode:leader 代表主节点,follower 代表从节点,一主二从。
测试验证zookeeper高可用切换功能:
1,将192.168.136.136 leader节点进程kill掉
2,分别查看192.168.136.137/138节点,重新进行了选举,并且138节点重新选举为leader。