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 2 3 4 5 6 7 8 9 | # 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. 检查负载均衡配置 |
常用命令
1 2 3 4 5 6 7 8 9 10 | 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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App