美文网首页
[Zookeeper] 分布式协议ZAB协议

[Zookeeper] 分布式协议ZAB协议

作者: LZhan | 来源:发表于2020-01-29 14:46 被阅读0次

1 前言

相对于paxos的通用性,zab是专用于zookeeper。Zookeeper原子消息广播协议,实现一种主备模式框架下来保持各集群中各副本之间的数据一致性。

这里的主备系统架构模型,就是指只有一台客户端(Leader)负责处理外部的写事务请求,然后Leader客户端将数据同步到其他Follower节点。

Zookeeper 客户端会随机的链接到 zookeeper 集群中的一个节点,如果是读请求,就直接从当前节点中读取数据;如果是写请求,那么节点就会向 Leader 提交事务,Leader 接收到事务提交,会广播该事务,只要超过半数节点写入成功,该事务就会被提交。

2 ZAB协议实现过程

2.1 消息广播

1.消息(Proposal和Zxid)
Leader服务器将每个事务请求生成对应的Proposal,并为这个Proposal分配一个全局单调递增的唯一ID(ZXID,64位,前32位是周期epoch,后32位是单调递增的计数器)。
2.广播过程
leader和follower之间都一个队列,leader将消息发送到该队列,将Proposal广播给所有的follower服务器,follower服务器以事务日志的形式写入磁盘,成功写入后反馈给leader一个ACK响应;
当Leader服务器接收到超过半数的ACK响应后,开始广播commit消息,同时Leader服务器自身完成对事务的提交,每一个follower服务器接受到commit消息后也完成对事务的提交。

2.2 崩溃恢复

当Leader服务器出现故障后,就会进入崩溃恢复模式,崩溃恢复要求:
1.确保已经被leader提交的proposal必须最终被所有的follower服务器提交;
2.确保丢弃已经被leader提出的但是没有被提交的proposal。

优先选择出拥有最大ZXID的Proposal的服务器作为Leader,以满足上述要求,之后进行数据同步。

2.3 数据同步

Leader会将自身的提交的最大Proposal的事务Zxid发送给其他的follower节点。
follower节点会根据leader的消息进行回退或者数据同步操作。最终的目的是要保证集群中所有节点的数据副本保持一致。

3 ZAB协议原理

ZAB协议要求每个Leader都要经历三个阶段,发现,同步,广播
(1)发现:即要求zookeeper集群必须选择出一个leader进程,同时leader会维护一个follower可用列表,将来客户端可以与可用列表中的节点进行通信。
(2)同步:leader要负责将本身的数据与follower完成同步,做到多副本存储。这也是体现了CAP中的高可用和分区容错。follower将队列中未处理完的请求消费完成后,写入本地事务日志中。
(3)广播:leader可以接收客户端新的Proposal请求,将新的Proposal请求广播给所有的follower。

分布式理论

相关文章

  • zookeeper zab协议(二)

    zookeeper zab协议 zab协议概述 ZAB 协议是为分布式协调服务 ZooKeeper 专门设计的一种...

  • ZAB协议

    ZAB(Zookeeper Atomic Broadcast)协议,即原子广播协议用于zookeeper实现分布式...

  • Zookeeper的ZAB协议和集群脑裂问题

    ZAB协议用途 ZAB(Zookeeper Atomic Broadcast) 协议是为分布式协调服务zookee...

  • ZooKeeper的ZAB协议

    ZAB协议简介 Zookeeper主要依赖ZAB协议来实现分布式数据一致性,基于该协议,Zookeeper实现了一...

  • ZAB协议理解参考

    ZAB协议概要 一) ZAB协议是专门为ZooKeeper实现分布式协调功能而设计。ZK主要是依据ZAB协议来实现...

  • ZAB协议理解

    ZAB协议概要 1. ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据Z...

  • zookeeper

    zookeeper 简述ZAB协议以及zookeeper 简述你所知道的分布式一致性协议 叙述ZAB集群数据同步的...

  • Zookeeper之ZAB协议

    Zookeeper Atomic Broadcast(ZAB,zookeeper原子消息广播协议)。ZAB 协议是...

  • ZAB协议基本原理

    概述 ZAB (Zookeeper Atomic Broadcast)协议是为分布式协调服务 ZooKeeper ...

  • (7)ZAB 协议

    ZAB(Zookeeper Atomic Broadcast) 协议是为分布式协调服务 ZooKeeper 专门设...

网友评论

      本文标题:[Zookeeper] 分布式协议ZAB协议

      本文链接:https://www.haomeiwen.com/subject/ulmvthtx.html