目標:擴容過程中,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的重新選舉
作者:陳先生家的園丁
鏈接:https://www.jianshu.com/p/26ddaf688a4f