如何扩容zookeeper集群?
场景一,新增加节点大于等于现有集群节点
- 将待加入节点分成N组,保证每个加入旧集群的节点数量小于原集群节点数量(很重要的一点,否会出各种不可思意的问题);
- 将第一组节点加入原集群;(方法参考场景二)
- 新产生的集群中所有节点配置文件是一样;
- 再加入第二组设备,依次类推;
场景二,新增加节点小于现有集群节点
- 将待加入节点的配置文件修改为最终集群配置;
- 启动所有待加入节点(不区分前后顺序);
- 验证数据是否同步到新加入节点;
3.1 在原集群中create /test 路径;
3.2 在新加入节点中查看该路径是否同步过来,能看到则说明扩容成功; - 修改原集群中的节点的配置文件;
- 先重启所有所集群中的fllower节点;
- 最后重启leader节点;
相关实验
zk集群
node ip | myid |
---|---|
10.3.128.72 | 1 |
10.3.128.73 | 2 |
10.3.128.74 | 3 |
10.3.128.75 | 4 |
10.4.42.106 | 5 |
10.4.42.107 | 6 |
10.4.41.61 | 7 |
server.1=10.3.128.72:2888:3888
server.2=10.3.128.73:2888:3888
server.3=10.3.128.74:2888:3888
server.4=10.3.128.75:2888:3888
server.5=10.4.42.106:2888:3888
server.6=10.4.42.107:2888:3888
server.7=10.4.41.61:2888:3888
实验1 集群中3个节点
环境
server.1=10.3.128.72:2888:3888
server.2=10.3.128.73:2888:3888
server.3=10.3.128.74:2888:3888
步骤:
start
1. 第一台启动失败,但是ps看进程存在
2. 第二台启动成功,返回看第一台状态运行状态
3. 第三台启动成功;
stop
1. 关闭第三台;查看第一台、第二台运行正常;
2. 关闭第二台,查看第一台运行异常;(与只启动测试中,只启动第一台的报错相同)
3. 关闭第一台;
实验2 集群中4个节点
环境
10.3.128.72 1
10.3.128.73 2
10.3.128.74 3
10.3.128.75 4
步骤:
start
1. 第一台启动失败,但是ps看进程存在
2. 第二台启动失败,ps看进程存在
3. 第三台启动成功,ps看进程存在,返回看前两台运行正常;
实验3 扩容3个节点到5个节点
环境
10.3.128.72 1
10.3.128.73 2
10.3.128.74 3
10.3.128.75 4(待加入)
10.4.42.106 5(待加入)
步骤:
1. 3个节点启动
2. 修改待加入节点配置文件
3. 启动这两台待加入节点
4. 修改线上3台配置文件,并重启(leader节点最后重启)
实验4 扩容3个节点至7个节点
环境
10.3.128.72 1
10.3.128.73 2
10.3.128.74 3
10.3.128.75 4(待加入)
10.4.42.106 5(待加入)
10.4.42.107 6(待加入)
10.4.41.61 7(待加入)
步骤:
1. 3个节点启动
2. 修改待加入节点配置文件
3. 依次启动所有待加入节点
4. 启动完成后,所有待加入节点都不可正常运行(进程存在);此时原集群工作正常
5. 修改原集群中fllower角色的配置文件,并重启;
6. 待加入节点和原fllower节点运行正常;(重启fllower节点时,leader转到了某个已重启的节点)
7. 最后修改原leader的配置文件,并重启;
8. 集群运行正常;