这一次,彻底弄懂ZooKeeper协议

核心理念

  • ZooKeeper是分布式应用协调服务,其核心是ZAB协议。

ZooKeeper特点

  1. 保持秩序
  2. 可靠性
  3. 高效率
  4. 守时性
  5. 避免争执
  6. 没有野心

ZAB协议(ZooKeeper Atomic Broadcast)

  • 原子广播或全序广播,确保所有正确进程以相同顺序接收同一组消息。

消息广播流程

  1. 生成事务Proposal:Leader为客户端请求生成事务Proposal并广播给Followers。
  2. 写入事务日志:Followers接收并写入本地磁盘,成功则反馈Ack给Leader。
  3. 收集选票:Leader收集Follower的Ack,半数以上同意后广播Commit消息。

消息广播的缺点

  1. 数据不一致:部分Follower可能未收到Commit消息。
  2. 单点问题:Leader崩溃导致事务资源锁定。
  3. 同步阻塞:事务处理阻塞其他逻辑直到二阶段提交完成。

崩溃模式

  • 解决二阶段提交问题,确保提交已提交的事务Proposal,丢弃跳过的事务。

崩溃模式的两个关键点

  1. 确保事务同步:Leader通过Proposal消息队列确保Follower同步未提交事务。
  2. Leader标识与事务偏移量:使用epoch和ZXID标识Leader和事务,新Leader通过比对ZXID让Follower回退跳过事务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值