全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 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、连接数、延迟

📝 发现内容有误?点击此处直接编辑

← 上一篇 ZooKeeper ACL权限控制
下一篇 → ZooKeeper集群架构原理
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库