写点什么

Zookeeper 在线迁移

用户头像
阿骆麦迪
关注
发布于: 2021 年 06 月 16 日

背景

最近团队新接了其他部门的一个系统的数据库和中间件维护,其中包括 Zookeeper,需要我来出迁移方案并实施。其实,Zookeepr 的迁移之前我就给业务做过,但是当时也没有把完整过程记录下来,只写了一个大概的迁移方案,还丢了,所以这次又得重新写方案并且在验证一遍,想着还是把方案给记录下来,后面肯定还是会用到,本次迁移是热迁移,ZK 服务不中断。

说明

现有一个三节点集群,信息如下:



配置文件如下:


server.1=172.30.10.13:2888:3888server.2=172.30.10.14:2888:3888server.3=172.30.10.16:2888:3888
复制代码


新集群准备了三台服务器,信息如下:


热迁移方案

我们都知道 ZK 集群可用的基本要求是半数以上节点处于存活状态,为了集群不中断服务,迁移步骤为如下:


  1. 扩容 4 和 5 两个节点,新集群由 1,2,3,4,5 组成

  2. 缩容 1 和 2 两个节点,新集群由 3,4,5 组成

  3. 扩容 6 这个节点,新集群由 3,4,5,6 组成

  4. 业务切换并验证,配置 4,5,6 三个节点(关键)

  5. 缩容 3 这个节点,集群由 4,5,6 组成,完成迁移

具体步骤

扩容 4 和 5 两个节点,新集群由 1,2,3,4,5 组成
  1. 下载安装包,配置 myid(略),修改 4 和 5 的配置文件如下并启动,1,2,3 节点暂时不动


   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. 查看集群状态,确认节点 4 和 5 加入集群并完成了数据同步

  2. 修改 1,2,3 的配置如下,依次重启节点 1,3,2(2 是 leader),过程中集群一直可用,仅仅在重启节点 2 的时候发生主节点选举,已有连接会断掉,但是客户端会重连,服务一直可用


   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 组成
  1. 修改 6 的配置文件如下,启动节点 6,查看集群状态,确认节点 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 组成,完成迁移
  1. 修改 4,5 的配置文件,集群配置为 4,5,6 的地址,依次重启节点 4,5(5 是 leader)

  2. 停止节点 3,over

总结

本文章目的为说明清楚迁移过程,给大家提供一个经过实战可行的方案,如果问为什么要这么做,原理是什么,有没有其他方案,比如直接扩容 3 个节点行不行,后面我会在出文章专门介绍。

发布于: 2021 年 06 月 16 日阅读数: 16
用户头像

阿骆麦迪

关注

还未添加个人签名 2018.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Zookeeper在线迁移