美文网首页
聊聊ZAB(二)

聊聊ZAB(二)

作者: lucasgao | 来源:发表于2021-03-21 16:24 被阅读0次

为什么引入新的协议(对比)

这个时候paxos总是被吊出来

我们知晓目前有一个比较好的候选算法:paxos。它可以提供一系列重要的特性,比如

  • 不管多少节点失败都可以保证安全性。(即不产生坏的错误结果)
  • 允许 程序崩溃和恢复
  • 三次通信进行一次提交

但是,对用对paxos研究,我们发现可以简化paxos协议以获得更高的吞吐。

首先,paxos是允许消息丢失和重排的。但是,如果我们采用TCP通信的话,我们就可以保证所有交付的消息都是FIFO。这样我们就可以保证同时多个提案的因果有序。但是paxos因为没有FIFO实现,所以也就不能保证因果有序。

其次,在paxos中,为了减少竞争,我们一般只有一个提议者。这个提议者就是leader。当paxos从leader崩溃恢复之后,新的leader需要确保所有部门交付的消息完全交付。然后按照之前的提案编号进行提案。因为多个leader可以给同一个事务(实例)进行提案,就会出现以下2个问题:

  • 提案可能会冲突。 paxos利用majority机制解决这个问题
  • 针对具体的实例,或者事务,我们并不知道其是否已经提交了。

那么ZAB为了避免以上的问题,他保证针对一个消息提案只能有一个编号,这就简化了选票和恢复的过程。在paxos中,如果一个服务认为自己是leader,那么他就会用一个更高的选票编号去获取leader地位。但是ZAB中,新的leader是需要在得到其他大多数服务认可之后才可以做leader的。

在ZAB中我们使用固定的计数器,由leader维护,并且leader负责跟其他follower服务同步。但是这个固定计数器不能再所有服务上启用,以达到负载均衡。但是我们还是采用了这种方法,因为以下的原因:

  • 客服端可以连接到任意机器上,并且这些机器可以响应read请求,从某种意义上来说,这也是负载均衡。

  • 涉及到的服务器数量是比较小的。换句话说 固定序列号协议 交流不会产生很大影响。所以通信上不会成为该协议的瓶颈。(ps.这块理解不太透彻,附上原文。)

    The number of servers involved is small. This means that the network communication overhead does not become the bottleneck that can a↵ect fixed sequencer protocols;

  • 没有必要开发更复杂的协议,因为 simple is best.

使用一个leader要求我们需要处理 leader故障以保证服务可用。这里采用的是 一些与视图变化相关的技术,比如Keidar and Dolev协议[10]。但是与其不同的是, zab不使用群组通信。并且服务的加入与离开,不会导致视图变更。除非是leader崩溃。

相关文章

  • 聊聊ZAB(二)

    为什么引入新的协议(对比) 这个时候paxos总是被吊出来 我们知晓目前有一个比较好的候选算法:paxos。它可以...

  • 聊聊ZAB(三)

    协议(实现) ZAB协议包含2种模式:恢复(recovery)和广播(boradcast)。 当服务刚启动或者经历...

  • 聊聊ZAB(一)

    译文 我们的故障模型是带状态恢复的崩溃模式。我们没有依赖同步时钟,但是我们假设服务对时间的感知是一致的(we do...

  • Zookeeper——一致性协议:Zab协议

    什么是Zab协议 Zab 协议的作用 Zab 协议原理 Zab 协议核心 Zab 协议内容 消息广播 崩溃恢复 如...

  • Zookeeper ZAB协议

    什么是Zab协议 Zab 协议的作用 Zab 协议原理 Zab 协议核心 Zab 协议内容 原子广播 崩溃恢复 如...

  • 聊聊zookeeper的ZAB算法

    zookeeper官网zookeeper源码地址 简介 在做分布式系统时,我们常常需要维护管理集群的配置信息、服务...

  • zookeeper zab协议(二)

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

  • zookeeper随笔 - 一致性及选举算法

    zookeeper保持数据一致性是通过Zab协议实现的。 ZAB协议 ZAB全称是Zookeeper Atomic...

  • Zookeeper之ZAB协议

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

  • 开发1-5年,你说你连ZooKeeper使用的一致性协议都不熟悉

    ZAB是什么 ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播...

网友评论

      本文标题:聊聊ZAB(二)

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