Zookeeper热缩容解析

Zookeeper热缩容解析

以5个节点规模的集群为例,进行节点的缩容。不停服,将集群从ZK1,ZK2,ZK3,ZK4,ZK5缩容成ZK1,ZK2,ZK3。

背景

降本,将ZK集群的规模从5节点变成3节点。

目标

核心步骤

  1. 停止ZK4,ZK5

    此时leader,必然在ZK1~ZK3中产生。若ZK1~ZK3中任何一台故障,都需要立即恢复,不然集群不可用。 ZK5直接下线。

  2. 重启ZK4

    ZK4,作为选主的辅助节点。为了保障缩容期间在重启其他节点式,有足够的参与选主的节点。

    等待ZK1~ZK4正常后,再后续操作。

  3. 修改ZK1的配置后重启

    此时,若ZK1不故障,则leader在ZK1~ZK3中产生,若ZK1故障,则Leader在ZK2~ZK4中产生。等待ZK1~ZK4正常后,再后续操作。

  4. 修改ZK2的配置后重启

    此时,若发生故障,则Leader在ZK1~ZK3中产生。等待ZK1~ZK4正常后,再后续操作。

  5. 修改ZK3的配置后重启

    此时,若发生故障,则Leader在ZK1~ZK3中产生。等待ZK1~ZK4正常后,再后续操作。必然主动发生一次切主

  6. 停止ZK4

缩容完成

客户端影响

期间客户可能会感知异常,但是正常都会主动重试重连成功。

相关推荐
未济3 天前
linux 配置环境变量
linux
傲世仙尊3 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.3 天前
进程间通信
linux
Liuqy-053 天前
Linux IO编程——静态库、动态库
linux
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog3 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
AIgorithmGEEK3 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid
琥珀色糖3 天前
SimlpeHttp
linux·服务器