【大数据入门核心技术-Zookeeper】(二)ZAB协议介绍

news2024/11/15 21:28:42

目录

一、什么是Zab协议

二、Zab协议的4个阶段

1、选举阶段(Leader Election)

2、发现阶段(Discovery)

3、同步阶段(Synchronization)

4、广播阶段(Broadcase)


一、什么是Zab协议

ZAB协议,全称 Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。它是专门为分布式协调服务——Zookeeper,设计的一种支持崩溃恢复和原子广播的协议。

当leader崩溃或者集群中参与选票的个数不足一半,表示整个集群对外服务不可用,需要进行崩溃恢复。

从设计上看,ZAB协议和 Raft 很类似。ZooKeeper集群中,只有一个Leader节点,其余均为Follower节点。

二、Zab协议的4个阶段

1、选举阶段(Leader Election)

        在集群选举开始时,所有节点都处于选举当某一个节点的票数超过半数节点后,该节点将被推选为准Leader。

        选举段是产生一个准Leader。只有到达广播阶段(Broadcast)后,准 Leader 才会成为新
Leader。

2、发现阶段(Discovery)

        在发现阶段,各个 Follower 开始和准 Leader 进行同步 Follower 最近接收的事务提议。这时,准 Leader 会产生一个新的 Epoch,并尝其他 Follower 接收该 Epoch 后再更新到本地。

        发现阶段的一个 Follower只会连接 Leader,如果节点1认为节点2是Leader,则当节点1尝试连接节点2时,如果连接拒绝,则集群会进人重新选举阶段。发现阶段的主要目的是发现当前大多数节点接收最新提议。


3、同步阶段(Synchronization)

        同步阶段主要是将 Leader 在前一阶段获得的最提议信息同步到集群中所有的副本,只有当半数以上的节点都同步完成时,准 Leader会成为真正的 Leader。

        Follower 只会接收 Zxid 比自己的 lastZxid 大的提议。同步阶段完成后集群选主的操作才完成,新的Leader将产生

4、广播阶段(Broadcase)

        到了这个阶段,Zookeeper集群才会正式对外提供事务服务,并且Leaderkk可以进行消息广播。同时只要有新的节点加入,还需要对新的节点进行同步。
        需要注意的是,ZAB提交事务并不像2PC一样需要全部Follower都返回ACK,只需要得到超过半数的节点的ACK就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Keras文本和序列(三)

本篇涉及的内容 如何对文本分词 什么是词嵌入,如何使用词嵌入 什么是循环网络,如何使用循环网络 如何堆叠 RNN 层和使用双向 RNN,以构建更加强大的序列处理模型 如何使用一维卷积神经网络来处理序列 如何结合一维卷积神经网络和 RNN 来处…

焱融全闪系列科普| 为什么 SSD 需要 NVMe?

NVMe 的由来 目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口,接口协议为 AHCI,是 Intel 联合多家公司研发的系统接口标准。AHCI 最大队列深度为 32,即主机最多可以发 32 条命令给 HDD 或 SSD 执行&…

【观察】软通动力:以数智化技术创新,赋能每一个降碳场景

毫无疑问,“碳达峰、碳中和”已成为当今世界最为紧迫的使命,目前全球已有110多个国家相继承诺“碳中和”目标。同样,2020年9月,中国也提出了到2030年实现“碳达峰”,并努力争取2060年前实现“碳中和”的“双碳”目标&a…

六、组件的生命周期与组件间之间的数据共享

一、组件的生命周期 1.1、生命周期 & 生命周期函数 生命周期(Life Cycle)是指一个组件从创建→远行→销毁的整个阶段,强调的是一个时间段。 生命周期函数:是由vue框架提供的内置函数,会伴随着组件的生命周期&…

阿里云安装mysql、nginx、redis

目录 安装mysql 安装nginx ​编辑安装redis 先看一下系统基本信息 安装mysql rpm -qa | grep mariadb 卸载mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 wget -i http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install my…

【使用 BERT 的问答系统】第 7 章 :BERT 模型的未来

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

(八) 共享模型之管程【活跃性】

一、多把锁(P114) 一间大屋子有两个功能:睡觉、学习,互不相干。 现在小南要学习,小女要睡觉,但如果只用一间屋子(一个对象锁)的话,那么并发度很低 解决方法是准备多个房间…

项目复习:基于TCP的文件服务器

ser.c(服务器): #include "./fun.h"int main(int argc,const char * argv[]) {//1.判断入参if(argc!3){fprintf(stderr,"入参为空,请检查\n");return -1;}//端口号转整型int portatoi(argv[2]);//变量声明struct sockaddr_in sin;int sinLensi…

axios.defaults.baseURL的三种配置方法

axios.defaults.baseURL的三种配置方法目录概述需求:设计思路实现思路分析1.少2.2.动态获取请求地址3.3.采用配置文件参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,m…

SEAL 0.3 正式发布:国内首个全链路软件供应链安全管理平台

12月1日,软件供应链安全管理平台 SEAL 0.3 正式发布(以下简称“SEAL”),这是国内首个以全链路视角保护软件供应链的安全管理平台。两个月前 SEAL 0.2 发布,该版本创新性地提供了依赖项的全局汇总与关联,用户…

DSP篇--C6678功能调试系列之SPI调试

目录 1、初始化 2、数据传输 1、初始化 Perform the following procedure for initializing the SPI: 1. Reset the SPI by clearing the RESET bit in the SPI global control register 0 (SPIGCR0) to 0. 2. Take the SPI out of reset by setting SPIGCR0.RESET to 1. 3. …

【使用 BERT 的问答系统】第 6 章 :BERT 模型应用:其他任务

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

【大数据入门核心技术-Zookeeper】(三)Zookeeper的选举机制和流程

目录 一、Zookeeper的选举机制 1、每一个 Server 都会发出一个投票 2、接收来自各个 Server 的投票 3、处理投票 4、统计投票 5、改变服务器状态 二、Zookeeper的选举流程 一、Zookeeper的选举机制 Zookeeper 在配置文件中并没有指定 Master 和 Slave。但是,…

软件测试培训之十个无脚本测试方案

1.自然语言处理(NLP) 目前,一些最新的无脚本自动化测试工具能够通过采用NLP语法,来创建各种测试用例。就像编写简单的英语语句一样,用户可以轻松地实现测试用例的自动化。此类工具一般会带有AI驱动的内核,因此大幅节省了用户对其维…

【遥感图像融合:梯度指导:纹理细节】

GTP-PNet: A residual learning network based on gradient transformation prior for pansharpening (一种基于梯度变换的剩余学习网络) 提出了一种基于梯度变换先验的残差学习网络GTP-PNet,用于生成光谱分布准确、空间结构合理的高质量HRM…

车间生产设备管理有哪些问题?低代码来助力

随着科学技术对生产技术与生产工艺流程的不断改革创新,同时受市场变化的影响,企业生产管理模式也发生了巨大的改变,对车间生产设备管理的要求更高,并在一定层面推动了车间生产设备管理模式的创新和转变发展。但由于不同的企业面对…

JavaScript---DOM---DOM简介、获取元素、事件基础、操作元素---11.5

DOM简介 什么是DOM 文档对象模型(Document Object Model,简称DOM)是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。 W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容、…

[附源码]计算机毕业设计springboot学生宿舍管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

如何在 Windows 10/8.1/8/7 上无密码删除 Deep Freeze

如何在 Windows 10/8.1/8/7 上无密码删除 Deep Freeze 有些人认真对待计算机安全问题。这些人会安装 Deep Freeze 冰点来保护他们的计算机。该应用程序的便利之处在于它会在重新启动时将计算机恢复到原始的预设配置。因此,可以轻松消除重启之间发生的任何变化&#…

海量数据如何在Web端实现动态可视化?看看这家企业是怎么做的

“我们TestLogger公司是一家赛车行业的软件公司,主要是通过分析在赛道上多个传感器收集到的赛车数据,帮助提高赛车性能。TestLogger Analyzer就是其中的一款核心数据分析工具,在我们构建该工具的第一个产品原型时,就发现由于不同类…