Zookeeper源码剖析-ZAB协议选举流程

发布于:2024-07-31 ⋅ 阅读:(124) ⋅ 点赞:(0)

文章目录

ZAB协议介绍

ZAB (ZooKeeper Atomic Broadcast) 协议

ZAB (ZooKeeper Atomic Broadcast) 协议是 ZooKeeper 中用来保证集群中所有节点数据一致性的核心协议。它确保了所有更新能够在集群中以原子的方式传播,即要么所有节点都应用了更新,要么都不应用。ZAB 协议有两种模式:崩溃恢复模式 (Recovery Mode) 和普通模式 (Broadcast Mode)。

1. 概述

ZAB 协议解决了以下问题:

  • 一致性:所有服务器对同一操作具有相同的结果。
  • 原子性:要么所有服务器都应用了某个操作,要么都不应用。
  • 顺序性:操作按照提案的顺序被应用。
  • 持久性:已经提交的操作不会因为故障而丢失。

2. 模式

2.1 崩溃恢复模式 (Recovery Mode)

当集群中的服务器重启或加入新服务器时,需要进入崩溃恢复模式。此模式的目的是让所有的服务器达成一致的状态。

  • 选举 Leader:服务器之间进行选举,选出一个 Leader。
  • 状态同步:Follower 通过 Sync 请求与 Leader 同步状态。
  • 完成同步

网站公告

今日签到

点亮在社区的每一天
去签到