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

Zookeeper集群中节点之间数据是如何同步的

1.首先集群启动时,会先进行领导者选举,确定哪个节点是Leader,哪些节点是Follower和Observer

2.然后Leader会和其他节点进行数据同步,采用发送快照和发送Diff日志的方式

3.集群在工作过程中,所有的写请求都会交给Leader节点来进行处理,从节点只能处理读请求

4.Leader节点收到一个写请求时,会通过两阶段机制来处理

5.Leader节点会将该写请求对应的日志发送给其他Follower节点,并等待Follower节点持久化日志成功

6.Follower节点收到日志后会进行持久化,如果持久化成功则发送一个Ack给Leader节点

7.当Leader节点收到半数以上的Ack后,就会开始提交,先更新Leader节点本地的内存数据

8.然后发送commit命令给Follower节点,Follower节点收到commit命令后就会更新各自本地内存数据

9.同时Leader节点还是将当前写请求直接发送给observer节点,observer节点收到Leader发过来的写请求后直接执行更新本地内存数据

10.最后Leader节点返回客户端写请求响应成功

11.通过同步机制和两阶段提交机制来达到集群中节点数据一致

http://www.lryc.cn/news/405821.html

相关文章:

  • HTTPServer改进思路2(mudou库核心思想融入)
  • Kubernetes Secret 详解
  • docker笔记4-部署
  • 有监督学习基础
  • 揭开 AI 绘画提示词的神秘密码!
  • macOS 10.15中屏蔽Microsoft Edge浏览器的更新提示
  • Qt 实战(3)数据类型 | 3.2、QVariant
  • Docker中安装的postgresql14在启用vector扩展的时候,找不到该扩展的控制文件。
  • JS防抖和节流
  • OpenWrt 为软件包和docker空间扩容
  • 重要的工作任务,怎么在电脑桌面设置倒计时?
  • Failed to build get_cli:get:的解决方案
  • 短视频矩阵源码技术分享
  • 轮播图自定义内容
  • 大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
  • Istio_01_Istio初识
  • leetcode日记(47)螺旋矩阵Ⅱ
  • centos系统mysql主从复制(一主一从)
  • IEDA怎么把springboot项目 启动多个
  • Vue 3项目安装Element-Plus
  • Git下载安装
  • linux中的目录操作函数
  • JSON 文件第一段飘红
  • go使用gjson操作json数据
  • Mac 下华为鸿蒙 :DevEco Studio 开发工具下载
  • C进阶—动态内存管理
  • QT表格显示MYSQL数据库源码分析(七)
  • excel系列(三) - 利用 easyexcel 快速实现 excel 文件导入导出
  • 探索前后端数据传输模式:Java、Go与Python的实践20240719
  • 【YashanDB知识库】yac修改参数后关闭数据库hang住