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.hqwc.cn/news/458131.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第2章 路由

学习目标 掌握注册路由的方式,能够独立完成路由的注册 掌握URL传递参数的方式,能够通过URL规则向视图函数传递参数 掌握转换器用法,能够根据业务需求灵活应用内置转换器或自定义转换器 掌握指定请求方式,能够在注册路由时指定请…

字节跳动官方出品AI,白嫖使用GPT4!

关注我,紧跟本系列专栏文章,咱们下篇再续! 作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架…

AnimateDiffusion文字生成图片--入门

AnimateDiffusion文字生成图片--入门 1. 安装2. 插件2.1 汉化插件2.2 中文提示词插件2.3 模型下载插件2.4 模型下载2.5 c站helper插件2.6 c站秘钥 3. 模型4. 总结 gitio: https://a18792721831.github.io/ 下面基本上所有的操作都需要访问外网,请自行解决外网。 1. …

ROS笔记一:工作空间和功能包

目录 工作空间 如何创建工作空间: 编译工作空间 设置环境变量 功能包 创建功能包 CMakeLists.txt package.xml 工作空间 ROS的工作空间是用来存放工程文件代码的文件夹 ROS的开发依赖于工作空间,包括编写代码、编译等都是在工作空间下进行的 工作空…

vue electron应用调exe程序

描述 用Python写了一个本地服务编译成exe程序,在electron程序启动后,自动执行exe程序 实现 1. 使用node的child_process模块可以执行windows执行,通过指令调exe程序 // electron/index.js var cp require("child_process"); /…

【开源】SpringBoot框架开发城市桥梁道路管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统,支持…

跟着pink老师前端入门教程-day20

二、移动WEB开发之flex布局 1、flex 布局体验 1.1 传统布局与flex布局 传统布局:兼容性好、布局繁琐、局限性、不能再移动端很好的布局 flex弹性布局:操作方便,布局极为简单,移动端应用很广泛;PC 端浏览器支持情况…

archlinux 使用 electron-ssr 代理 socks5

提前下载好 pacman 包 https://github.com/shadowsocksrr/electron-ssr/releases/download/v0.2.7/electron-ssr-0.2.7.pacman 首先要有 yay 和 aur 源,这个可以参考我之前的博客 虚拟机内使用 archinstall 安装 arch linux 2024.01.01 安装依赖 yay 安装的&#…

辛芷蕾在《繁花》中美艳照人,实力打脸于正。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 在王家卫导演的电视剧《繁花》中,辛芷蕾饰演的李李…

容器化对数据库的性能有影响吗?

引言 容器化是一种将应用程序及其依赖项打包到一个独立、可移植的运行环境中的技术。容器化技术通过使用容器运行时引擎(比如Docker/Containerd)来创建、部署和管理容器。Kubernetes(通常简称为 k8s)是一个开源的容器编排和管理平…

数字图像处理(实践篇)四十七 OpenCV-Python 高动态范围HDR

目录 一 HDR 二 实践 高质量的图像具备的要素如下: ①分辨率 图像中的像素数量。在特定屏幕尺寸下,分辨率越高,像素越多,显示的细节更精细。 ②位深度

国密SM2算法进行数据的加密、签名和验签、解密

一、背景介绍 数据的加解密有很多种方式,几种常用的加密算法如下: DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合; 3DES&…