ZAB 协议(ZooKeeper Atomic Broadcast)是 ZooKeeper 保证数据一致性的核心算法。正如你所提到的,ZAB 协议主要包含两种基本模式:崩溃恢复(Crash Recovery) 和 消息广播(Message Broadcast)。 以下是这两种模式的详细解析: --- 1. 崩溃恢复模式 (Crash Recovery) 这是 ZAB 协议为了保证系统高可用和数据一致性而设计的特殊模式。 触发时机: Zookeeper 集群刚启动时。 当前的 Leader 节点崩溃、重启或网络中断。 Leader 节点失去了过半(Quorum)Follower 节点的联系。 主要目的: 选举出一个新的 Leader。 确保新的 Leader 拥有所有已提交(Committed)的事务。 将集群中所有节点的数据与新 Leader 进行同步,达到一致状态。 核心流程: 1. Leader 选举 (Election): 集群进入选举状态,所有节点通过投票选出新的 Leader。通常拥有最大 ZXID(事务 ID,表示数据最新)的节点会被选为 Leader。 2. 数据同...