这也太简单了!!Zookeeper核心ZAB协议

Zookeeper协议篇-Paxos算法与ZAB协议 在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!战项目源码》点击传送门,即可获取!** 阅读详情

ZAB协议是什么?

ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议), 它保证Zookeeper 在主从系统架构下,集群中各个节点之间数据的一致性。保证数据一致性的分两种情况讨论,一种集群正常运行,一种集群不正常。

Zookeeper集群正常运行时采用消息广播模式保证;

Leader节点宕机情况下采用崩溃恢复模式,保证;

消息广播

消息广播,就是集群正常运行时接收客户端写请求,需要保证集群数据的一致。
消息广播是一个原子广播协议,类似二阶段提交过程。主要3个步骤:

  1. Leader 接收客户端的写请求
  2. Leader 封装事物Proposal消息,广播给集群中的所有Follower,等待ACK响应
  3. 当Leader接收 Follwer的ACK响应数过半(当然包括自己),就commit自己本地数据,然后将commit请求广播给集群中的Follwer

消息广播大概流程如下:


结合上图,看看消息广播的具体细节:

  • Leader 接收到请求后在进行广播事务 Proposal 之前会为这个事务分配一个 ZXID,再进行广播。

  • Leader 会为每个Follower都各自分配一个单独的队列,然后将需要广播的事务 Proposal 依次放入这些队列中去,并根据 FIFO 策略进行消息的发送。

  • 每个Follower 在接收到后都会以事务日志的形式写入到本地磁盘中,并且在成功写入后返回给 Leader一个 ACK 响应。

  • 当有超过半数的Follower ACK 响应后,Leader 就会广播一个 Commit 消息给所有的 Follower,Follower 接收到后就完成对事务的提交操作。

ZXID 的设计也很有特点,是一个全局有序的 64 位的数字,可以分为两个部分:

高 32 位是:epoch(纪元),代表着周期,每当选举产生一个新的 Leader 服务器时
就会取出其本地日志中最大事务的 ZXID ,解析出epoch(纪元)值操作加 1作为新的 epoch ,
并将低 32 位置零。

低 32 位是:counter(计数器),它是一个简单的单调递增的计数器,针对客户端的每个事务请求都会进行加 1

画个更详细的图:

崩溃恢复

崩溃恢复,就是在Leader节点宕机的时候,重新选举出Leader后(关于选举机制可以参看这片文章),Follower 同步新Leader时,需要保证一致性。

在Leader节点宕机时,可能会发生2种情况,针对这两种情况我们来分析,它是怎么保证数据一致的。

  1. Leader 在广播事务 Proposal 给所有 Follwer 之后宕机,数据怎么处理?
  2. Leader 在收到 ACK 并commit自己,同时发送了部分 commit 出去之后宕机,数据怎么处理?

针对这2个情况,ZAB 定义了2个原则:

  1. ZAB 协议会保存那些被Leader广播Proposal且提交的事务。

  2. ZAB 协议会丢弃那些被Leader广播Proposal但没提交的事务。

说白了,就是Follwer接收到Leader的 commit请求的那些数据才有效。

在选举机制这篇文章,我们就可以确定出新的Leader节点数据一定是最新的。然后Follower就进行数据同步咯。

multi-paxos、raft和zab协议的核心区别 Google Chubby的作者Mike Burrows曾说:“这个世界上只有一种一致性算法,那就是Paxos,其它算法都是残次品。”由此可见,实际上raft、zab等一致性算法都是在paxos的基础上通过增加或者调整一些限制条件演进而来的。本文就是结合自己的理解,来分析这些算法在演进过程中所做的取舍。本文不打算再具体介绍每种算法的过程,如果不熟悉的可以先阅读文末的参考资料。 《从Paxos到ZooKeeper分布式一致性原理与实践》这本书 参考资料: 1、《从Paxos到ZooKeepe.. 阅读详情

相关推荐

zookeeper协议篇-Paxos算法与ZAB协议

拜占庭帝国有许多支军队,不同军队的将军之间必须制订一个统一的行动计划,从而做出进攻或者撤退的决定,同时,各个将军在地理上都是被分隔开来的,只能依靠军队的通讯员来进行通讯。然而,在所有的通讯员中可能会存在叛徒,这些叛徒可以任意篡改消息,从而达到欺骗将军的目的。这就是著名的拜占庭问题,而这个问题就和分布式场景下异步系统和不可靠的协议中达到一致性类似,后来Lamport 在 1990年提出了一个理论上的一致性解决方案,茼时给出了严格的数学证明,Paxos算法由此而生。

2501_90404120的博客 1181

Zab协议详解

什么是Zab协议? Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。 Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复 的 原子广播协议 ,是Zookeeper保证数据一致性的核心算法。Zab借鉴了Paxos算法,但又不像Paxos那样,是一种通用的分布式一致性算法。它是特别为Zookeeper设计的支持崩溃恢复的原子广播协议。 在Zo

脑壳疼 3万+

银河麒麟V10新特性解析:从安装到AI应用的全面指南

本文全面解析银河麒麟V10操作系统的新特性,从安装指南到AI应用开发,详细介绍了其智能调度引擎、神经网络加速和场景化AI工具集等核心功能。通过实战案例展示如何高效配置AI环境、优化性能,并解决常见问题,助力开发者在国产操作系统上实现高效AI开发与应用部署。

seed的博客 302

Zab(Zookeeper Atomic Broadcast)协议

一、什么是 Zab协议 Zab( Zookeeper Atomic Broadcast:Zookeeper原子广播)Zookeeper 通过 Zab 协议保证分布式事务的最终一致性。 【1】Zab协议是为分布式协调服务 Zookeeper专门设计的,是 Zookeeper保证数据一致性的核心算法。Zab借鉴了 Paxos算法,但又不像 Paxos那样,是一种通用的分布式一致性算法。支持崩溃恢复 和 原子广播协议。 【2】在 Zookeeper中主要依赖 Zab协议来实现数据一致性,基于该协议,zk实现了一

程序猿进阶 1万+

EPLAN二次开发实战:从API接口到定制化功能的完整指南

本文为电气工程师和自动化设计师提供了一份EPLAN二次开发的完整实战指南。文章详细介绍了从脚本、插件到独立程序三种开发模式,重点讲解了如何使用C#或VB.NET通过API接口操作EPLAN数据模型,实现定制化功能以提升设计效率,并分享了开发环境搭建、调试及项目打包分发的避坑经验。

c6d7e8f9g的博客 1120

”COMSOL“竟然如此简单!我悟了!!

COMSOL Multiphysics具有强大的多物理场全耦合仿真分析功能、高效的计算性能,可以保证数值仿真的高度精确,已被广泛应用于各个学科领域,近年来运用COMSOL来解决电化学实际工程问题也越来越普遍。

C1012562281的博客 3448

Zookeeper 的 Zab 协议详解

Zab Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播),通过 Zab 协议来保证分布式事务的最终一致性。 Zab 是特别为 Zookeeper 设计的支持崩溃恢复的原子广播协议,在 Zookeeper 中主要依赖 Zab 协议实现数据一致性,基于该协议,Zookeeper 实现了一种主备模型(Leader 与 Follower)的系统架构保证集群中各个副本之间的数据一致性。 Zab 协议核心 在 Zookeeper 中只有一个

沸羊羊_ 5090

代谢组数据分析(二十六):LC-MS/MS代谢组学和脂质组学数据的分析流程

本教程概述了LC-MS/MS在代谢组学和脂质组学数据分析中的应用流程。首先介绍了样本的采集、提取和LC-MS/MS分析,随后详细阐述了质谱数据的预处理、峰值识别、特征注释,以及数据标准化和统计分析的重要性。特别强调了使用XCMS和CAMERA进行数据对齐和加合物识别,以及利用MultiABLER和LipidFinder进行数据过滤、插补和标准化处理。此外,还介绍了如何应用EigenMS算法进行数据标准化,以及如何使用Limma包进行差异分析。整个流程旨在提高数据质量,确保分析结果的准确性和可靠性,为后续的生

专注生信领域 1954

zookeeper中的ZAB协议理解

ZAB协议 ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。 zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同步到所有

鸡蛋达芬奇 1万+

【从零开始vnpy量化投资】十一. 实盘接入测试与正式实盘

本篇主要讲解如何使用vnpy进行实盘交易,由于上一节我们已经学习了模拟盘运行,如果一切顺利的话,只需要通过穿透测试,就可以正式部署实盘了。

魔落的博客 4232

④ Django创建用户中心应用users,扩展用户信息

本章配套视频教程 Django创建用户中心应用users,扩展用户数据 在settings.py文件中配置项目 1、语言配置:LANGUAGE_CODE = 'zh-hans’ 2、时区配置:TIME_ZONE = 'Asia\Shanghai’ 3、模板路径配置:‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)], 并创建templates文件

轻编程的博客 672

ZooKeeper-11ZAB协议算法

ZAB(ZooKeeper Atomic Broadcast)协议是 ZooKeeper 的核心一致性协议,它保证了集群中所有节点的数据一致性。ZAB 协议基于 Paxos 算法设计,它通过发现、同步和广播三个阶段,确保了集群中所有节点的数据一致性。理解 ZAB 协议的工作原理对于正确使用 ZooKeeper 和构建可靠的分布式系统至关重要。通过合理的配置和优化,可以显著提升 ZooKeeper 的性能和可靠性。

d3y1`5 81_09 1002

unitree-G1外接 USB 麦克风完整配置指南

首先,将type-c麦克风插入G1机器人的USB口后,记录下USB麦克风的卡号(card)和设备号(device),通常显示为 card 1: Device [USB Audio Device]

m0_47999117的博客 599

分布式【Zookeeper ZAB协议】

Zab协议的全称是(Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。Zab协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,是Zookeeper保证数据一致性的核心算法。Zab借鉴了Paxos算法,但又不像Paxos那样,是一种通用的分布式一致性算法。它是特别为Zookeeper设计的支持崩溃恢复的原子广播协议。

谢谢大家的关注 2549

NVIDIA Cosmos:生成式物理世界模型 从入门到精通1

Prompt Upsampler模型通过微调T5-XXL实现低质量描述到专业级描述的自动扩展,将"一个机器人在仓库"转换为"一台橙色的Kiva自主移动机器人在现代化电商仓库的过道中行驶,头顶的LED阵列投射出冷白色光线,地面反射出机器人的轮廓,摄像机以1.5米高度跟随拍摄,轻微晃动模拟手持效果"。控制输入(深度图、语义分割等)经独立的卷积编码器处理后注入控制分支,提取的多尺度特征通过零卷积层(zero convolution)逐步释放至主网络,避免初始训练阶段的噪声干扰。视频条件通过时序掩码控制扩散范围。

VectorShift的博客 137

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Zookeeper之ZAB协议详解

ZAB协议 1、ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。 2、zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同步到所有的follower节点中。 ZAB的协议核心是在整...

METON的博客 3942

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ZooKeeper原理深入之ZAB原子消息广播协议

ZAB协议的核心是定义了对于会改变 ZooKeeper 数据状态的事物请求的处理方式。

不会骑摩托的程序员不是好的摄影师 2373

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ZAB 协议解析:ZooKeeper分布式一致性的核心

ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。Zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面,Zookeeper 并没有使用 Paxos ,而是采用了 ZAB 协议,ZAB是Paxos算法的一种简化实现。ZAB 协议定义:ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 的协议。下面会重点讲这两个东西。

EverythingAtOnce的博客 1663

ZooKeeper主从节点状态同步机制详解:ZAB协议的核心流程

ZAB(ZooKeeper Atomic Broadcast)协议是ZooKeeper专门设计的一种支持崩溃恢复的原子广播协议。主节点如何把数据更新到所有从节点(消息广播模式)主节点崩溃后如何处理(崩溃恢复模式)fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;ZAB协议两大模式ZAB协议消息广播模式正常运行时崩溃恢复模式。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3461

Zookeeper 的核心引擎:深入解析 ZAB 协议

Zookeeper 的核心引擎:深入解析 ZAB 协议

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 1446

zookeeper核心之ZAB协议就这么简单!

zookeeper核心之ZAB协议就这么简单! 背景 我们都知道 Zookeeper 是基于 ZAB 协议实现的,在介绍 ZAB 协议之前,先回顾一下 Zookeeper 的起源与发展。 Zookeeper 究竟是在什么样的时代背景下被提出?为了解决了哪些棘手的问题? Zookeeper 最早起源于雅虎研究院的一个研究小组。当时,研究人员发现,在雅虎的很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统都存在分布式单点问题,所以雅虎的开发人员就试图开发出一个通用的无单点问题的分布式协调框架

weixin_43973190的博客 474

Zookeeper之ZAB协议

ZAB协议包括两种基本的模式: 崩溃恢复和消息⼴播。当整个服务框架启动过程中,或者是Leader服务器出现⽹络中断、崩溃退出或重启等异常情况时, ZAB协议就会进⼊崩溃恢复模式,同时选举产⽣新的Leader服务器。当选举产⽣了新的Leader服务器,同时集群中已经有过半的机器与该Leader服务器完成了状态同步之后, ZAB协议就会退出恢复模式,其中,所谓的状态同步 就是指数据同步,⽤来保证集群中过半的机器能够和Leader服务器的数据状态保持⼀致。...

lengyingzhang的博客 2425

【ZooKeeper】ZooKeeper ZAB 协议深入详解

ZAB协议是ZooKeeper的核心共识算法,主要实现分布式系统的原子广播和崩溃恢复。其工作流程分为选举、发现、同步和广播四个阶段:选举阶段通过快速选举算法选出Leader;发现阶段确保新Leader包含所有已提交事务;同步阶段保证节点数据一致;广播阶段处理客户端请求。ZAB协议通过ZXID(含epoch和counter)实现全局有序性,采用两阶段提交(提案+ACK)确保消息原子性,并具备完善的Leader故障恢复机制。核心优势在于快速选举收敛、强一致保证和高效崩溃恢复能力。

NeoLshu的博客 1202

ZooKeeper核心算法全解析:深入ZAB协议的崩溃恢复与消息广播模式

在分布式系统领域,ZooKeeper作为一个开源的分布式协调服务,已经成为构建高可用、强一致性应用的核心基础设施。它最初由雅虎研究院开发,后来成为Apache的顶级项目,广泛应用于互联网企业的分布式架构中。从分布式锁、配置管理到命名服务、集群管理,ZooKeeper通过其简单而强大的API,为开发者提供了可靠的分布式协调能力。随着微服务、云原生和实时数据处理需求的爆发,ZooKeeper在2025年的技术生态中依然占据重要地位,尤其是在Kafka、Hadoop、Dubbo等主流框架中作为协调基石存在。

zuiyuelong的博客 1908

ZAB协议:解读 ZooKeeper 核心机制

ZAB协议(Zookeeper Atomic Broadcast)是Zookeeper的核心一致性算法,用于实现分布式系统中的一致性与强一致性读写。该协议基于原子广播机制,确保集群中各节点的数据一致性和高可用性。本文将深入解析ZAB协议的工作原理、崩溃恢复机制以及性能优化策略,帮助开发者全面理解其在实际应用中的重要作用和实现细节。

蓝鲸鱼计算机软件开发工作室 820

Zab协议

Paxos算法 Paxos算法是莱斯利*兰伯特在1990年提出的一种基于消息传递并且具有高度容错特性的一致性算法,是目前公认的解决分布式问题上最有效的算法之一 拜占庭问题 1982年 ,Lamport与另两人共同发表了论文提出了一种计算机容错理论,为了描述这个理论中的问题,假设了一个问题相关的故事场景,如下: 拜占庭帝国有许多支军队,不同军队的将军之间必须制订一个统一的行动计划,从而做出进攻或者撤退的决定,同时,各个将军在地理上都是被分隔开来的,只能依靠军队的通讯员来进行通讯。然而,在所有的通讯员中

猎户星座 8512
上一篇: Zookeeper 的选举机制也不过如此!
下一篇: Java9、10、11的新特性
yi博说
博客等级 码龄11年 20粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值