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节点;

  1. 修改节点24集群配置为2-3-24,启动节点24加入集群,检查集群节点及信息同步情况;
  2. 停止节点1,从集群下线节点1;
  3. 将节点24加入负载均衡,将节点1从负载均衡删除;
  4. 修改节点2、3集群配置为2-3-24,分别重启节点2、3,检查集群节点及信息同步情况;

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节点;

  1. 修改节点25集群配置为3-24-25,启动节点25加入集群,检查集群节点及信息同步情况;
  2. 停止节点2,从集群下线节点2;
  3. 将节点25加入负载均衡,将节点2从负载均衡删除;
  4. 修改节点3、24集群配置为3-24-25,分别重启节点3、24,检查集群节点信息及信息同步情况;

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节点;

  1. 修改节点26集群配置为24-25-26,启动节点26加入集群,检查集群节点及信息同步情况;
  2. 停止节点3,从集群下线节点3;
  3. 将节点26加入负载均衡,将节点3从负载均衡删除;
  4. 修改节点24、25集群配置为24-25-26,分别重启节点24、25,检查集群节点信息及信息同步情况;

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

 

posted @   MR船长  阅读(474)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示