ZooKeeper3.4.10集群迁移
一. 新老集群服务器部署情况
1. 老集群部署情况:
|
主机 |
IP |
端口 |
zk myid |
备注 |
|
b-service-1 |
172.16.0.21 |
2181, 2888, 3888 |
1 |
集群版本:zookeeper3.4.10; 除zk myid不同外,其它配置一样; |
|
b-service-2 |
172.16.0.22 |
2181, 2888, 3888 |
2 |
|
|
b-service-3 |
172.16.0.23 |
2181, 2888, 3888 |
3 |
2. 新集群部署情况:
|
主机 |
IP |
端口 |
zk myid |
备注 |
|
b-mid-24 |
172.16.0.24 |
2181, 2888, 3888 |
24 |
集群版本:zookeeper3.4.10(docker); 除zk myid不同外,其它配置一样; |
|
b-mid-25 |
172.16.0.25 |
2181, 2888, 3888 |
25 |
|
|
b-mid-26 |
172.16.0.26 |
2181, 2888, 3888 |
26 |
二. 平滑迁移(不停机迁移)
1. 平滑迁移思路
该方案的基本思路是先扩展 zookeeper 集群到新节点,然后下线旧节点,在整个迁移过程中 zk 集群可以持续提供服务。因此,平滑迁移可以保证服务不中断,适合线上环境执行,但缺点是操作复杂,容易出错

2. 具体迁移步骤
实际迁移过程中可能会有不同,大的原则是:1. 加入新节点,删除老节点;2. 先下线老节点、再重启follower节点、最后重启leader节点;3. 确保新节点成功加入集群、信息成功同步后再执行其它操作;
2.1 新增节点24、删除节点1:
|
主机 |
IP |
端口 |
zk myid |
动作 |
集群配置 |
步骤 |
|
b-service-1 |
172.16.0.21 |
2181, 2888, 3888 |
1 |
删除 |
不变 |
注意:节点1、节点2、节点3,先下线follower节点、先重启follower节点、最后重启leader节点;
|
|
b-service-2 |
172.16.0.22 |
2181, 2888, 3888 |
2 |
保持 |
2, 3, 24 |
|
|
b-service-3 |
172.16.0.23 |
2181, 2888, 3888 |
3 |
保持 |
2, 3, 24 |
|
|
b-mid-24 |
172.16.0.24 |
2181, 2888, 3888 |
24 |
新增 |
2, 3, 24 |
2.2 新增节点25、删除节点2:
|
主机 |
IP |
端口 |
zk myid |
动作 |
集群配置 |
步骤 |
|
b-service-2 |
172.16.0.22 |
2181, 2888, 3888 |
2 |
删除 |
不变 |
注意:节点2、节点3、节点24,先下线follower节点、先重启follower节点、最后重启leader节点;
|
|
b-service-3 |
172.16.0.23 |
2181, 2888, 3888 |
3 |
保持 |
3, 24, 25 |
|
|
b-mid-24 |
172.16.0.24 |
2181, 2888, 3888 |
24 |
保持 |
3, 24, 25 |
|
|
b-mid-25 |
172.16.0.25 |
2181, 2888, 3888 |
25 |
新增 |
3, 24, 25 |
2.3 新增节点26、删除节点3:
|
主机 |
IP |
端口 |
zk myid |
动作 |
集群配置 |
步骤 |
|
b-service-3 |
172.16.0.23 |
2181, 2888, 3888 |
3 |
删除 |
不变 |
注意:节点3、节点24、节点25,先下线follower节点、先重启follower节点、最后重启leader节点;
|
|
b-mid-24 |
172.16.0.24 |
2181, 2888, 3888 |
24 |
保持 |
24, 25, 26 |
|
|
b-mid-25 |
172.16.0.25 |
2181, 2888, 3888 |
25 |
保持 |
24, 25, 26 |
|
|
b-mid-26 |
172.16.0.26 |
2181, 2888, 3888 |
26 |
新增 |
24, 25, 26 |
2.4 检查节点24、节点25、节点26配置、节点、集群信息、负载均衡(端口2181的TCP代理):
# 1.检查配置文件 zoo.cfg cat /data/docker/zookeeper-home/conf/zoo.cfg # 2.检查节点、集群信息 docker exec -it zookeeper bash zkServer.sh status echo mntr | nc 127.0.0.1 2181 # 3. 检查负载均衡配置
常用命令
docker exec -it zookeeper bash zkServer.sh status echo mntr | nc 127.0.0.1 2181 zkCli.sh -server 127.0.0.1:2181 ls / /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/bin/zkServer.sh stop

浙公网安备 33010602011771号