0

0

zookeeper 怎么保证主从节点的状态同步?

畫卷琴夢

畫卷琴夢

发布时间:2025-11-10 16:43:26

|

563人浏览过

|

来源于php中文网

原创

ZooKeeper通过ZAB协议实现数据一致性,其核心包括Leader选举、事务广播与状态同步。集群中由Leader处理写操作,Follower参与投票与数据同步。节点启动或故障恢复时进入恢复模式,分为发现和同步两阶段:发现阶段Follower上报自身最大ZXID,Leader据此确定最新状态;同步阶段Leader推送缺失的事务日志,确保Follower数据追平。正常运行时,Leader将写请求封装为提案,多数Follower确认并持久化后提交,保证原子性与一致性。通过心跳机制监控节点存活,超时则触发新选举,确保系统高可用。ZAB协议结合选举、日志同步与原子广播,实现强一致与容错能力。

zookeeper 怎么保证主从节点的状态同步?

ZooKeeper 通过 ZAB 协议(ZooKeeper Atomic Broadcast)来保证主从节点之间的状态同步。这个协议的核心目标是确保所有节点的数据一致性,即使在部分节点故障或网络分区的情况下也能正常工作。

主从架构与角色划分

ZooKeeper 集群中通常包含一个Leader和多个Follower(以及可选的 Observer)。所有写操作必须通过 Leader 处理,Follower 节点负责参与投票和数据同步。

节点启动或 Leader 宕机后,集群会通过选举产生新的 Leader。一旦 Leader 确定,就开始进行状态同步。

ZAB 协议的两个阶段:发现与同步

ZAB 协议在恢复模式下分为两个关键阶段:

  • 发现(Discovery):Follower 向候选 Leader 发送自己的最大事务 ID(ZXID),Leader 收集这些信息以确定最新的数据状态。
  • 同步(Synchronization):Leader 根据 Follower 的 ZXID 决定需要推送哪些事务日志,使 Follower 的状态追赶到与 Leader 一致。

这个过程确保了即使某些 Follower 落后,也能被正确补全数据。

事务广播与持久化

在正常服务阶段,所有写请求由 Leader 发起事务广播:

Rationale
Rationale

Rationale 是一款可帮助企业主、经理和个人做出艰难的决定的AI工具

下载
  • Leader 将写操作封装为事务提案(Proposal),并发送给所有 Follower。
  • Follower 接收到提案后,先写入本地事务日志,再返回 ACK。
  • 当多数节点确认后,Leader 提交事务,并通知所有 Follower 更新内存状态。

这种基于多数派确认的机制,既保证了数据一致性,也具备容错能力。

心跳与异常处理

Leader 和 Follower 之间通过心跳维持连接。如果 Follower 长时间未收到心跳,会重新进入选举流程。同样,若 Leader 失去多数 Follower 的响应,也会自动退出 Leader 角色。

这种设计使得系统在节点宕机或网络波动时能快速恢复一致性。

基本上就这些。ZooKeeper 利用 ZAB 协议实现了高可用和强一致性的状态同步,核心在于选举、日志同步和原子广播机制的配合。不复杂但容易忽略细节。

相关文章

keep
keep

Keep是一款健身安排,无论是想减肥塑形或增肌,还是寻找健身跑步瑜伽计步等训练计划,你可以随时随地选择课程进行训练!权威教练视频教学,健身干货自由分享!有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
dubbo和zookeeper有什么区别
dubbo和zookeeper有什么区别

dubbo和zookeeper的区别:1、功能定位;2、使用场景;3、数据存储与协调;4、集成与关系;5、性能与可靠性;6、扩展性与灵活性;7、社区与生态系统。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

221

2024.02.23

excel制作动态图表教程
excel制作动态图表教程

本专题整合了excel制作动态图表相关教程,阅读专题下面的文章了解更多详细教程。

24

2025.12.29

freeok看剧入口合集
freeok看剧入口合集

本专题整合了freeok看剧入口网址,阅读下面的文章了解更多网址。

74

2025.12.29

俄罗斯搜索引擎Yandex最新官方入口网址
俄罗斯搜索引擎Yandex最新官方入口网址

Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

207

2025.12.29

python中def的用法大全
python中def的用法大全

def关键字用于在Python中定义函数。其基本语法包括函数名、参数列表、文档字符串和返回值。使用def可以定义无参数、单参数、多参数、默认参数和可变参数的函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

16

2025.12.29

python改成中文版教程大全
python改成中文版教程大全

Python界面可通过以下方法改为中文版:修改系统语言环境:更改系统语言为“中文(简体)”。使用 IDE 修改:在 PyCharm 等 IDE 中更改语言设置为“中文”。使用 IDLE 修改:在 IDLE 中修改语言为“Chinese”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

18

2025.12.29

C++的Top K问题怎么解决
C++的Top K问题怎么解决

TopK问题可通过优先队列、partial_sort和nth_element解决:优先队列维护大小为K的堆,适合流式数据;partial_sort对前K个元素排序,适用于需有序结果且K较小的场景;nth_element基于快速选择,平均时间复杂度O(n),效率最高但不保证前K内部有序。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

12

2025.12.29

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

136

2025.12.29

抖音网页版入口在哪(最新版)
抖音网页版入口在哪(最新版)

抖音网页版可通过官网https://www.douyin.com进入,打开浏览器输入网址后,可选择扫码或账号登录,登录后同步移动端数据,未登录仅可浏览部分推荐内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

66

2025.12.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.1万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号