千家信息网

Raft共识算法是什么

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"Raft共识算法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Raft共识算法是什么"吧!Raft算法主要应用于分布式集群系统中,
千家信息网最后更新 2025年12月02日Raft共识算法是什么

本篇内容主要讲解"Raft共识算法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Raft共识算法是什么"吧!

Raft算法主要应用于分布式集群系统中,如果保证高可用和数据一致性,它主要定义两方面的规范:选主(Leader Election)和复制日志(Log Replication)

1.选主机制

Raft定义了集群节点三个状态:Leader(主)、Follower (从)、Candidate(候选)

主:负责与对接外部输入 ,并保持与从的心跳

从:备份数据、主挂了的时候要挑起重担

候选:当从timeout时间内(150ms 到 300ms,每个节点不一样)没有收到主的心跳,转为此状态

从以下几种情形中分析选主是如何运作的

a.正常初始情况

开始所有节点都是Follower状态,当其中一个节点在timeout过后,就会转变成Candidate并向其它节点发送投票请求,并开始新的timeout。

超过半数Follower节点收到请求并回复确认后,Candidate节点就会转变成Leader节点,并向Follower节点发送心跳

c.多个Follower同时转变成Candidate

当有多个Candidate时,会向其余节点发送选举请求,Candidate节点会拒绝其它节点的请求,Follower节点接收到其中一个Candidate节点请求后,会拒绝同一选举轮回的其它请求,如果此时其中一个节点获得半数节点同意,自动成为Leader,如果两个Candidate节点没有分出胜负后,当timeout节点会发起第二轮选举请求,此时就看谁先timeout结束并获得半数节点同意,就成为Leader

2.复制日志

数据复制主要是为了保证数据的可靠和一致性,当数据变更时,Leader将数据同步给Follower

从以下几种场景如何执行数据复制

a.正常情况

大致可以分为8个步骤

外部向Leader发布数据,

1.Leader将数据保存,状态为uncommit

2.Leader将数据通过appendEntries发送给Follower

3.Follower将数据保存,状态为uncommit

4.Follower返回确认给Leader

5.Leader收到半数以上Follower的确认后,将数据状态更改为commit

6.Leader返回确认

7.Leader再次通过appendEntries将数据发送给Follower

8.Follower将数据状态更改为commit

b.Network Partition 情况

也就是在部分节点网络问题没法通信情况下

没有Leader的一方,通过选举得到leader,此Leader的选举轮次+1

此时就出现了两个Leader可以对外提供服务

如果此时有外部数据进来,分别传给了L1和L2,未超过半数的一方因为得到确认的数量也未达到半数,所以数据都是uncommit状态,返回也是失败

而超过半数的一方数据为commit

此时如果网络恢复了,通过选举规则,轮次高的Leader一方为继续为Leader,另一方降级为Follower

此时uncommite的数据将被删除,未同步的数据将会被补充

到此,相信大家对"Raft共识算法是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

节点 数据 状态 选举 一方 算法 情况 共识 一致 一致性 两个 内容 多个 日志 网络 轮次 集群 a. 保证 同步 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 局域网络安全认证 网络安全监察部门联系电话 win10服务器管理器设置 hive与关系数据库之间的关系 浦东新区网络技术服务操作 单招计算机网络技术专业面试 软件开发地图管理天地图 无锡机电网络技术质量保证 天津市流动人口数据库 山东省春考网络技术类 曙光服务器做raid管理页面 计算机网络技术毕业设置 点歌机数据库文件损坏 数据库管理员的发展前景 自学云计算软件开发 手机股票软件开发 网络安全防护的体会 信息安全技术和数据库 服务器断开怎么连接王者 数据库中三种数据模型表示形式 关于促进网络安全的指导意见 从数据库到数据到es 软件开发过程中来自用户 网络安全与应用技术研究生院校 网络技术进公司 昆明嵌入式软件开发招聘网 国家网络安全办公室主任是谁 江苏林明峰做软件开发 域名换服务器以后要备案吗 三级数据库技术证书有什么用
0