zookeeper扩容

如何扩容zookeeper集群?

场景一,新增加节点大于等于现有集群节点

  1. 将待加入节点分成N组,保证每个加入旧集群的节点数量小于原集群节点数量(很重要的一点,否会出各种不可思意的问题);
  2. 将第一组节点加入原集群;(方法参考场景二)
  3. 新产生的集群中所有节点配置文件是一样;
  4. 再加入第二组设备,依次类推;

场景二,新增加节点小于现有集群节点

  1. 将待加入节点的配置文件修改为最终集群配置;
  2. 启动所有待加入节点(不区分前后顺序);
  3. 验证数据是否同步到新加入节点;
    3.1 在原集群中create /test 路径;
    3.2 在新加入节点中查看该路径是否同步过来,能看到则说明扩容成功;
  4. 修改原集群中的节点的配置文件;
  5. 先重启所有所集群中的fllower节点;
  6. 最后重启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. 集群运行正常;

你可能感兴趣的:(zookeeper扩容)