首页 > 其他分享 >ZAB Raft

ZAB Raft

时间:2023-08-17 22:22:38浏览次数:36  
标签:成员 ZAB Follower Raft 日志 Leader

共同点:

1️⃣ 都采用多数派。

2️⃣ 都引入 Leader 角色,且一个强 Leader 的算法,只有 Leader 处理写请求。

不同点:

1️⃣ ZAB 划分阶段:崩溃恢复(领导者选举,成员发现,数据同步)、消息广播;Raft:领导者选举、日志复制

2️⃣ ZAB的协商阶段(消息广播阶段)分为两个阶段 Propose、Commit,移除了 2PC 的回滚;Raft 的协商阶段(日志复制阶段)被心跳机制 + 日志连续的特性优化为一个阶段。

image-20230817213344803

3️⃣ ZAB 的协商阶段中 Follower 只会被动接受提案;Raft 中的协商阶段中 Follower 会参与提案值的决策(一致性检查)。

4️⃣ Raft 中日志只能从 Leader 流向 Follower,Follower 不能以任何形式覆盖掉 Leader 的数据;在 ZAB 中,当 Leader 晋升时,通过 NEWEPOCH 收集所有 Follower 的数据(Follower 通过 ACK 返回它历史的提案),来生成 Initial History。

5️⃣ 对历史日志 (上一任 Leader 日志) 的处理:Raft 认为之前 term 不明确提交状态的日志都是未提交的,需等待当前 Leader 提出新的日志项且达成共识后,才能提交之前的日志;ZAB 则认为上一任 Leader 提出的不明确提交状态的日志都是已提交的,并将这些日志复制到其他成员。

6️⃣ 对选举冲突问题的处理:Raft 引入随机超时时间,降低了选举冲突的可能性;ZAB 通过增加 myid 来解决选举冲突问题。

7️⃣ Raft 在一轮选举中每个成员只能投一票;ZAB 中成员由于会更新自己的选票重新广播,所以一轮选举中每个成员可投出多票。

8️⃣ 对于成员变更:Raft 有单节点成员变更 (One Server ConfChange) 和多节点联合共识 (Joint Consensus);ZAB 3.5 之前没有动态成员变更,要想变更配置,只能停机更改配置文件再重启。

标签:成员,ZAB,Follower,Raft,日志,Leader
From: https://www.cnblogs.com/angelia-wang/p/17639024.html

相关文章

  • Zabbix
    环境搭建Zabbix简介 在企业网络运维过程中,运维工程师必须随时关注各服务器和网络的运行状况,以便及时发现问题,尽可能减少故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便,快捷的获得监控信息,通常会借助于一些集中监测软件。就目前而言,有服务器的地方就少不了监控系统,......
  • 手写raft(二) 实现日志复制
    1.Raft日志复制介绍在上一篇博客中MyRaft实现了leader选举,为接下来实现日志复制功能打下了基础:手写raft(一)实现leader选举日志复制是raft最核心也是最复杂的功能,大体上来说一次正常的raft日志复制大致可以简化为以下几步完成:客户端向raft集群发送一次操作请求(比如kv数......
  • zabbix-proxy报错:cannot send list of active checks to “x.x.x.x“:delete from hos
    最近新部署了zabbix,两台zabbix-proxy访问一台zabbix-serverproxy的日志里一直都有这些数据62827:20230813:032210.216cannotsendlistofactivechecksto"10.x.x.x":host[prod-nacos-2.sugon.local]notfound162826:20230813:032212.459cannotsendlistofactivech......
  • Zabbix监控Mysql主从
    一、主机规划服务器IPzabbix-server192.168.131.12mysql-master,zabbix-agent192.168.131.13mysql-slave,zabbix-agent192.168.131.14二、部署&配置zabbix-server2.1部署zabbix#安装Zabbix仓库。这里部署zabbix6.4wgethttps://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabb......
  • Zabbix 监控 Tomcat 服务
    目录一、Zabbix监控Tomcat的方式二、实例部署1.客户端配置(1)安装JDK(2)设置JDK变量环境(3)安装tomcat(4)修改配置文件(5)重启2.服务端配置(1)安装zabbix-java-gateway(2)修改配置文件3.Web页面操作一、Zabbix监控Tomcat的方式zabbix通过部署jmx来监控tomcatzabbix提供了一个j......
  • Raft 算法
    论文《InSearchofanUnderstandableConsensusAlgorithm》,发表于2014年相比于Paxos,Raft最大的特性就是易于理解。为了达到这个目标,Raft主要做了两方面的事情:问题分解:把共识算法分为三个子问题,分别是领导者选举(leaderlection)、日志复制(logreplication)、安全性(......
  • 通过一个实例的例子,学习 SAP Fiori 应用中的 Draft Handling(草稿机制)
    SAPFiori应用里的DraftHandling(草稿处理)是一种机制,用于在SAP业务数据的编辑过程中,实时保存未提交的更改。这样的机制允许用户在多个会话或者繁琐的表单填写步骤中,逐渐构建和修改数据,并在需要时将其提交。DraftHandling在SAPFiori应用中起到重要的作用,可以在不中断现有......
  • Fiori 应用的 draft 处理机制
    注意本文只针对FioriDrafthandling做一个泛泛的概念介绍。如果大家想通过一个具体的实例来了解,可以阅读我这篇文章:5.通过一个实例的例子,学习SAPFiori应用中的DraftHandling(草稿机制)SAPFiori应用里的DraftHandling(草稿处理)是一种机制,用于在业务数据的编辑过......
  • Extended Kalman Filter vs. Error State Kalman Filter for Aircraft Attitude Estim
    EKF与ESKF的对比“Engineerscansolveexactproblemsusingnumericalapproximations,ortheycansolveapproximateproblemsexactly"-FredDaum.对出现在实际问题中的非线性的运动学(dynamic)模型以及/或非线性的观测方程进行线性化的操作,然后基于这个线性化的方程计算......
  • 解决zabbix乱码问题
    上述的图标数据,下面的小白框表示乱码含义,是因为我们改了zabbix的语言为中文服务器需要安装字体[root@zabbix-server~]#yuminstall-ywqy-microhei-fonts[root@zabbix-server~]#cp/usr/share/fonts/wqy-microhei/wqy-microhei.ttc/usr/share/fonts/dejavu/DejaVuSans......