Zookeeper在线迁移
背景
最近团队新接了其他部门的一个系统的数据库和中间件维护,其中包括Zookeeper,需要我来出迁移方案并实施。其实,Zookeepr的迁移之前我就给业务做过,但是当时也没有把完整过程记录下来,只写了一个大概的迁移方案,还丢了,所以这次又得重新写方案并且在验证一遍,想着还是把方案给记录下来,后面肯定还是会用到,本次迁移是热迁移,ZK服务不中断。
说明
现有一个三节点集群,信息如下:
配置文件如下:
server.1=172.30.10.13:2888:3888
server.2=172.30.10.14:2888:3888
server.3=172.30.10.16:2888:3888
新集群准备了三台服务器,信息如下:
热迁移方案
我们都知道ZK集群可用的基本要求是半数以上节点处于存活状态,为了集群不中断服务,迁移步骤为如下:
具体步骤
扩容4和5两个节点,新集群由1,2,3,4,5组成
server.1=172.30.10.13:2888:3888
server.2=172.30.10.14:2888:3888
server.3=172.30.10.16:2888:3888
server.4=172.30.8.226:2888:3888
server.5=172.30.8.252:2888:3888
server.1=172.30.10.13:2888:3888
server.2=172.30.10.14:2888:3888
server.3=172.30.10.16:2888:3888
server.4=172.30.8.226:2888:3888
server.5=172.30.8.252:2888:3888
直接停止节点1,2,完成缩容,新集群由3,4,5组成
扩容6这个节点,新集群由3,4,5,6组成
server.4=172.30.8.226:2888:3888
server.5=172.30.8.252:2888:3888
server.6=172.30.9.245:2888:3888
业务切换并验证,配置4,5,6三个节点,确认连接正常,业务运行正常
缩容3这个节点,集群由4,5,6组成,完成迁移
总结
本文章目的为说明清楚迁移过程,给大家提供一个经过实战可行的方案,如果问为什么要这么做,原理是什么,有没有其他方案,比如直接扩容3个节点行不行,后面我会在出文章专门介绍。