ZAB 协议简介

ZAB ,Zookeeper Atomic Broadcast,zk 原子消息广播协议,是专为 ZooKeeper 设计的一
种支持崩溃恢复的原子广播协议,在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据
一致性。

Zookeeper 使用一个单一主进程来接收并处理客户端的所有事务请求,即写请求。当服
务器数据的状态发生变更后,集群采用 ZAB 原子广播协议,以事务提案 Proposal 的形式广
播到所有的副本进程上。ZAB 协议能够保证一个全局的变更序列,即可以为每一个事务分配
一个全局的递增编号 xid。

当 Zookeeper 客户端连接到 Zookeeper 集群的一个节点后,若客户端提交的是读请求,
那么当前节点就直接根据自己保存的数据对其进行响应;如果是写请求且当前节点不是
Leader,那么节点就会将该写请求转发给 Leader,Leader 会以提案的方式广播该写操作,只
要有超过半数节点同意该写操作,则该写操作请求就会被提交。然后 Leader 会再次广播给
所有订阅者,即 Learner,通知它们同步数据。

ZAB 协议简介_第1张图片

你可能感兴趣的:(zookeeper,分布式)