美文网首页
Zookeeper-一致性协议ZAB

Zookeeper-一致性协议ZAB

作者: 麦大大吃不胖 | 来源:发表于2020-12-19 15:29 被阅读0次

by shihang.mai

1. 概念

ZAB是zookeeper原子广播意思,并且它paxos协议的变种,关于paxos参考博客

https://www.cnblogs.com/syq816/p/12465991.html

2. 协议详解

2.1 leader存在

zookeeper的ZAB
  1. Client连接follower,发送create ooxx节点
  2. follower转发到leader
  3. leader事务id递增,zxid=8
  4. leader维护每个follower的一个队列,通过广播方式向队列中发送一个"创建节点的log"
  5. follower写日志到磁盘,返回一个ok给leader。(某些follower可能存在网络波动,延迟返回ok)
  6. 如上图一个follower和leader已经ok(leader自身一票),过半了,那么再次通过广播方式向队列中发送一个"write",write意思是叫follower向自身内存创建节点
  7. follower在自身内存创建节点,返回ok给leader.(所有follower最终一直性)
  8. leader返回给发出请求的follower一个over-ok,follower再返回给Client ok

2.2 leader不存在

新leader选择方式依据以下原则

  1. zxid最大的
  2. 当zxid一样,选择myid最大的

2.2.1 第一次启动集群

zk集群-第一次启动选leader
  1. 4台机器,过半就是3台
  2. 无论哪3台机器启动,必须等到第3台启动,建立了两两连接,它们才可以将票投出去,选leader。
  3. 例如启动node1,node2,node4,那么4当选leader。zxid一样,myid大当选

2.2.2 leader挂了,重启集群

zk集群-重选leader或重启集群

原leader,node4挂了

  • 如果每个人都发现了leader挂了,那直接亮出自己的zxid和myid即可快速选出leader
  • 现在只有node3知道
  1. 首先节点间通过3888端口两两通讯
  2. node3分别向node2和node1发起投票,而node2和node1收到后,回绝并自己也发起投票.
  3. 最终node2成为leader

只要任何人发生投票,都会触发那个准leader发起自己的投票

相关文章

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

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

  • Zookeeper-一致性协议ZAB

    一致性协议ZAB by shihang.mai ZAB:zookeeper Atomicity broadcast...

  • ZooKeeper的ZAB协议

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

  • ZAB协议详解

    1.什么是ZAB协议? 支持崩溃恢复的原子广播协议,主要用于实现数据一致性 ZAB 协议全称:Zookeeper ...

  • zookeeper

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

  • ZAB协议

    ZAB协议 「ZAB 协议算法」 ZooKeeper 最核心的作用就是保证分布式系统的数据一致性,而无论是处理来自...

  • ZAB协议介绍2

    Zookeeper依赖ZAB协议来实现分布式数据的一致性,其中ZAB协议包括原子广播和崩溃恢复两个阶段。 基于该协...

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

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

  • Zookeeper ZAB协议

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

  • ZAB 协议原理介绍

    ZAB 协议原理介绍 标签:ZAB Leader选举 概述 在分布式系统中,对于数据一致性的问题,Paxos 算法...

网友评论

      本文标题:Zookeeper-一致性协议ZAB

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