IT袋

当前位置:主页 > 经验教程 > 建站编程 >

什么是ZAB协议

什么是ZAB协议 包括两种基本的模式是什么?

时间:2023-11-02 23:35:26 来源:IT袋 作者:马勇
导读:什么是ZAB协议,跟大家聊一聊什么是ZAB协议方面的知识,一定能解决您的问题的,一起来了解吧! ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,实现

什么是ZAB协议

跟大家聊一聊什么是ZAB协议方面的知识,一定能解决您的问题的,一起来了解吧!

  • ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,实现分布式数据一致性
  • 所有客户端的请求都是写入到Leader进程中,然后,由Leader同步到其他节点,称为Follower。在集群数据同步的过程中,如果出现Follower节点崩溃或者Leader进程崩溃时,都会通过Zab协议来保证数据一致性

什么是ZAB协议

ZAB协议的两种模式

ZAB协议包括两种基本的模式:消息广播崩溃恢复

消息广播:
  1. 集群中所有的事务请求都由Leader节点来处理,其他服务器为Follower,Leader将客户端的事务请求转换为事务Proposal,并且将Proposal分发给集群中其他所有的Follower。
  2. 完成广播之后,Leader等待Follwer反馈,当有过半数的Follower反馈信息后,Leader将再次向集群内Follower广播Commit信息,Commit信息就是确认将之前的Proposal提交。
  3. Leader节点的写入是一个两步操作,第一步是广播事务操作,第二步是广播提交操作,其中过半数指的是反馈的节点数>=N/2+1,N是全部的Follower节点数量。
崩溃恢复
  • 初始化集群,刚刚启动的时候
  • Leader崩溃,因为故障宕机的时候
  • Leader失去了半数的机器支持,与集群中超过一半的节点断连的时候

此时开启新一轮Leader选举,选举产生的Leader会与过半的Follower进行同步,使数据一致,当与过半的机器同步完成后,就退出恢复模式,然后进入消息广播模式。

整个ZooKeeper集群的一致性保证就是在上面两个状态之前切换,当Leader服务正常时,就是正常的消息广播模式;当Leader不可用时,则进入崩溃恢复模式,崩溃恢复阶段会进行数据同步,完成以后,重新进入消息广播阶段。

Zxid是Zab协议的一个事务编号,Zxid是一个64位的数字,其中低32位是一个简单的单调递增计数器,针对客户端每一个事务请求,计数器加1;而高32位则代表Leader周期年代的编号。

Leader周期(epoch),可以理解为当前集群所处的年代或者周期,每当有一个新的Leader选举出现时,就会从这个Leader服务器上取出其本地日志中最大事务的Zxid,并从中读取epoch值,然后加1,以此作为新的周期ID。高32位代表了每代Leader的唯一性,低32位则代表了每代Leader中事务的唯一性。

Zab节点的三种状态
  • following:服从leader的命令
  • leading:负责协调事务
  • election/looking:选举状态

以上IT袋网网介绍的什么是ZAB协议 和 包括两种基本的模式是什么的全部内容,网友们不妨在这方面予以借鉴

相关阅读

  • Gherkin语言如何弥合客户和开发人员之间的差距

    Gherkin语言如何弥合客户和开发人员之间的差距

    跟大家分享Gherkin语言如何弥合客户和开发人员之间的差距的相关介绍,接下来分享详细内容。 与软件开发人员沟通通常是一项繁重的任务,尤其是当人们缺乏技术知识和技术词汇时。这就是为

  • 什么是网络附加存储 NAS? 网络附加存储的适用场景有哪些

    什么是网络附加存储 NAS? 网络附加存储的适用场景有哪些

    一篇很详细的教程是关于什么是网络附加存储方面的介绍,一起来了解了解吧。 网络附加存储(Network-Attached Storage,简称NAS)是一种基于网络的存储解决方案,允许多个设备通过网络共享存储

  • 虚拟化技术详解:原理、类型和应用

    虚拟化技术详解:原理、类型和应用

    小编为你讲解虚拟化技术详解方面的讲解,一起跟随小编看看吧! 在我们探讨信息技术和计算的世界时,虚拟化是一个无法避免的主题。 但是,虚拟化是什么?它如何改变了我们的数字生活和

  • dropdownlist绑定数据库怎么用 详解dropdownlist控件用法

    dropdownlist绑定数据库怎么用 详解dropdownlist控件用法

    一篇很详细的教程是关于dropdownlist绑定数据库怎么用和详解dropdownlist控件用法的相关知识,接下来就是全面介绍。 数据绑定最早是被 Angular、Backbone 和 Ember 等框架推广而流行开来的,现在则在