zookeeper 在线扩容
目标:扩容过程中,zookeeper 集群对外提供服务正常
当前集群状态
集群由3个节点构成,每个节点的状态如下:
节点1:角色=follower,myid=1,端口=2181
节点2:角色=follower,myid=2,端口=2182
节点3:角色=leader,myid=3,端口=2183
集群在线扩展
的节点数由3个扩展至5个,新增节点4 、节点5 ,对应的zoo.cfg文件如下:
节点4:完成相关配置后,启动对应zk实例,确认启动ok,验证实例状态
节点5:完成相关配置后,启动对应zk实例,确认启动ok,验证实例状态
在leader节点上查看目前状态同步的follower数,确认新增节点已经成功加入集群
确认新增节点加入集群后,滚动更新原有集群的配置,并重启,这里需要注意,在重启follwer节点的时候并无任何影响,不过在重启leader节点的时候,这个时候会触发一次新的leader选举,zxid最新的默认优先当选新的leader,当zxid相同,myid最大的优先当选新的leader
滚动重启后,节点5的myid最大,荣升为新的集群leader。
zookeeper集群缩容
目标:缩容过程中,确保zookeeper集群对外提供服务正常。
集群缩容
将目前的5个节点缩小至3个,将节点1、节点2 下线,该两个节点都是follower
更新节点3、4、5的配置,并重启,这里先处理follower角色的节点,follower节点的重启无任何影响;更新leader配置并重启会触发一次leader的重新选举