zookeeper3.4.5升级到3.4.14同时选举节点缩容或迁移
兼容性问题
理论上小版本升级只是修改bug,不存在兼容性问题,但是涉及到线上应用难免有些担心。测试后证明是兼容的,已经将线上服务器从3.4.x统一升级到3.4.14。
本文所说的缩容是指减少选举节点数量,将选举节点改成观察者节点。
原则:
1、每次缩容的节点数必须是选举节点总数的一小半;
2、缩容操作时,修改顺序:
a 重启观察者节点。因为不影响选举,可以尽早改成最终配置,减少重启次数,但是不论何时修改,都一定要包含leader节点,否则没法同步数据。
b 重启普通选举节点(非缩容的目标节点、非leader节点)
c 重启被缩容的节点
d 重启leader节点
3、以上步骤能一次性解决问题最好,不行的话,多重复几次。
选举节点迁移
操作说明:是指用新的选举节点替换原来的选举节点,原来的选举节点变成观察者节点或停掉
方案:先加节点然后再删节点。加的节点数量要小于现有节点数量,否则加不进去。 加的操作比较简单,只是注意最后重启leader节点即可,缩容的步骤同上,缩的节点数小于等于加的节点数,也要小于当前选举节点总数的一小半。
重启原则:滚动重启,尽量少触发选主
重启顺序:新节点、观察者节点、普通选举节点、停掉或重启改变类型的选举节点、leader节点
小技巧:观察者节点因为不影响选举结果,所以可以在第二轮的时候提前改成最终配置,这样第三轮就能少重启一次。
参考:
5节点的迁移 | 3节点的迁移 | 备注 | |
第一轮 | 5+4 -> 9 | 3+2 -> 5 |
1、先修改观察者节点(下同) 2、新加入的节点数必须小于现有节点数 |
第二轮 | 9+1-3 -> 7 | 5+1-1 -> 5 | 选举节点改变。先变其他节点,再先加后减,最后变换leader |
第三轮 | 7-2 -> 5 | 5-2 -> 3 | 1、先变其他节点,再变缩容节点,最后变leader |
上一篇: 获取class类字节数组的方法
下一篇: zookeeper迁移方案