首页/ 学科题库/ zookeeper/ ZooKeeper集群数据同步与检测
zookeeper 实战教程

ZooKeeper集群数据同步与检测

2026-05-24 约 8 分钟 juanwangdev

ZooKeeper集群数据同步与检测

理解数据同步流程和状态检测方法。

数据同步机制

同步流程:

properties
1. Leader收到写请求
2. Leader发送提议给所有Follower
3. Follower接收提议并发送ACK
4. Leader收到过半ACK后提交
5. Leader通知Follower提交
6. 所有节点执行提交

角色差异:

角色同步行为
Leader发起提议、收集ACK、通知提交
Follower接收提议、发送ACK、执行提交
Observer接收提议、执行提交(不投票)

Observer特点:

特性说明
不参与投票不发送ACK
只同步数据接收并执行提交
扩展读能力可部署多个
跨地域部署不影响投票延迟

Observer配置:

Bash
# zoo.cfg
peerType=observer
server.4=host4:2888:3888:observer

同步类型:

类型说明
DIFF发送差异事务
TRUNC截断多余数据
SNAP发送完整快照

同步时机:

Bash
Follower落后少量 → DIFF发送差异
Follower超前 → TRUNC截断
Follower落后大量 → SNAP发送快照

提示:Observer适合跨地域部署,扩展读能力不影响写性能。

集群状态检测

四字命令:

命令作用
stat状态、角色、连接数
mntr详细监控指标
ruok健康检查
srvr服务器详情
cons连接详情

stat命令:

Bash
echo stat | nc localhost 2181

# 输出
Mode: follower          <- 角色
Zxid: 0x100000005       <- 事务ID
Connections: 10         <- 连接数
Outstanding: 0          <- 待处理请求
Znode count: 100        <- 节点数

mntr命令:

text
echo mntr | nc localhost 2181

# 输出关键指标
zk_server_state  follower
zk_avg_latency   5
zk_max_latency   100
zk_num_alive_connections  10
zk_znode_count   100

ruok健康检查:

text
echo ruok | nc localhost 2181
# 正常返回: imok
# 异常无响应

关键检测项:

项目命令关注点
Leader状态statMode字段
数据一致性srvr各节点ZXID
连接数mntrconnections
延迟mntrlatency

健康判断标准:

  • 有且仅有一个Leader
  • 各节点ZXID相近
  • 连接数在正常范围
  • 延迟在合理范围

注意:生产环境应配置监控告警,持续检测集群状态。

要点总结

  • Leader发送提议,过半ACK后提交
  • Follower接收提议、投票、提交
  • Observer只同步数据,不参与投票
  • stat查看角色和状态信息
  • mntr获取详细监控指标
  • ruok快速健康检查
  • 检测关注Leader状态、ZXID、连接数、延迟
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 ZooKeeper集群架构原理 下一篇 → ZooKeeper会话管理机制