当前位置: 首页 > article >正文

12.0 Zookeeper 数据同步流程

在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。

ZAB 协议分为两部分:

  • 消息广播
  • 崩溃恢复

消息广播

Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求,并采用 ZAB 协议的原子广播协议,将事务请求以 Proposal 提议广播到所有 Follower 节点,当集群中有过半的Follower 服务器进行正确的 ACK 反馈,那么Leader就会再次向所有的 Follower 服务器发送commit 消息,将此次提案进行提交。这个过程可以简称为 2pc 事务提交,整个流程可以参考下图,注意 Observer 节点只负责同步 Leader 数据,不参与 2PC 数据同步过程。

崩溃恢复

在正常情况消息广播情况下能运行良好,但是一旦 Leader 服务器出现崩溃,或者由于网络原理导致 Leader 服务器失去了与过半 Follower 的通信,那么就会进入崩溃恢复模式,需要选举出一个新的 Leader 服务器。在这个过程中可能会出现两种数据不一致性的隐患,需要 ZAB 协议的特性进行避免。

  • 1、Leader 服务器将消息 commit 发出后,立即崩溃
  • 2、Leader 服务器刚提出 proposal 后,立即崩溃

ZAB 协议的恢复模式使用了以下策略:

  • 1、选举 zxid 最大的节点作为新的 leader
  • 2、新 leader 将事务日志中尚未提交的消息进行处理

下个章节详细讲解 leader 选举过程。

希望你也学会了,更多编程源码模板请来二当家的素材网:https://www.erdangjiade.com


http://www.kler.cn/news/232644.html

相关文章:

  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • 什么是IDE,新手用哪个IDE比较好
  • idea(2023.3.3 ) spring boot热部署,修改热部署延迟时间
  • Unity2D 学习笔记 0.Unity需要记住的常用知识
  • 正版软件 - Proxyman:让网络调试变得更智能、更高效
  • 【深度学习理论】持续更新
  • 大模型基础架构的变革:剖析Transformer的挑战者(下)
  • linux 下 chrome 无法在设置里面配置代理的解决方法
  • Vue-57、Vue技术路由的参数如何传递
  • 友好城市——最长上升子序列
  • 在面试中如何回复擅长vue还是react
  • R语言绘图教程 | 双侧条形图绘制教程
  • unity-ios-解决内购商品在Appstore上面已配置,但在手机测试时却无法显示的问题
  • 一个 SpringBoot 项目能同时处理多少请求?
  • 目标检测:3采用YOLOv8 API训练自己的模型
  • 深度学习入门笔记(八)可以不断思考的模型:RNN与LSTM
  • CTFSHOW命令执行web入门29-54
  • Redis核心技术与实战【学习笔记】 - 31.番外篇:Redis客户端如何与服务器端交换命令和数据
  • C# 面向对象(OOP)编程关键知识点
  • 服务器内存使用率多少会影响正常访问?
  • Linux命令-badblocks命令(查找磁盘中损坏的区块)
  • ubuntu22.04 安装部署05:禁用默认显卡驱动
  • LeetCode 207:课程表(图论,利用拓扑排序判断是否有环)
  • 数据库管理-第148期 最强Oracle监控EMCC深入使用-05(20240208)
  • 详述FlinkSql Join操作
  • C/C++ - 异常处理
  • 麒麟信安战略投资湖南超能机器人技术有限公司,加速布局无人智能系统、自主可控机器人操作系统赛道
  • HarmonyOS远程真机调试方法
  • 侵入式智能指针和非侵入式智能指针
  • tsgctf-2021-lkgit-无锁竞争-userfaultfd