首页/ 学科题库/ zookeeper/ ZooKeeper集群架构原理
zookeeper 实战教程

ZooKeeper集群架构原理

2026-05-24 约 8 分钟 juanwangdev

ZooKeeper集群架构原理

理解集群规模和选举机制是运维基础。

集群节点数量要求

奇数节点原则:

规则说明
最小规模3节点
推荐规模3、5、7节点
不推荐偶数奇数更经济

过半机制:

Bash
过半节点存活 → 集群可服务
少于过半存活 → 集群停止

节点数计算:

节点数过半数最大容忍故障
321节点故障
431节点故障
532节点故障
642节点故障
743节点故障

为什么奇数节点:

text
对比3节点和4节点:
3节点:容忍1故障,成本3节点
4节点:容忍1故障,成本4节点
偶数节点不增加容错能力,浪费资源

规模选择建议:

场景推荐规模
测试环境3节点
生产环境3节点或5节点
高可用要求5节点或7节点

注意:节点数过多会增加选举和同步延迟。

Leader选举基本概念

选举触发条件:

场景说明
集群启动所有节点状态LOOKING
Leader宕机Follower心跳超时
Leader网络断开Follower检测连接失败

选举流程概述:

text
1. 节点状态变为LOOKING
2. 各节点发起投票提议
3. 投票信息包含:ZXID、myid
4. ZXID最大者优先成为Leader
5. ZXID相同则myid大者优先
6. 获得过半投票者成为Leader
7. 其他节点成为Follower

投票规则:

规则说明
ZXID优先数据最新者优先
myid次优ZXID相同myid大者优先
过半机制获得过半投票才当选

选举状态:

状态说明
LOOKING正在选举
LEADINGLeader角色
FOLLOWINGFollower角色

选举时间:

text
electionTime = initLimit × tickTime
默认: 10 × 2000ms = 20秒

选举验证:

text
# 查看选举后的角色
zkServer.sh status
# 输出: Mode: leader 或 Mode: follower

提示:ZXID越大表示数据越新,优先成为Leader保证数据完整。

要点总结

  • 集群最小3节点,推荐奇数节点
  • 过半节点存活即可服务
  • 奇数节点比偶数更经济,容错能力相同
  • Leader选举基于过半投票机制
  • ZXID最大者优先当选Leader
  • 选举状态:LOOKING选举、LEADING领导、FOLLOWING跟随
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 ZooKeeper ACL权限控制 下一篇 → ZooKeeper集群数据同步与检测