深入:分布式一致性:Raft算法解析

本文详细解读了Raft一致性算法,探讨其在解决分布式系统中高可用性和容错性问题上的应用。重点介绍了节点状态(Follower、Candidate、Leader)、选举机制、日志复制和安全性,以及Raft相对于Paxos的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分布式CAP理论

Consistency 一致性
Availability 可用性
Partition tolerance 分区容错性
(ps:三者不可兼顾)

什么是raft算法?(AP)

Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现。

raft算法解决了什么问题?

Raft 是用来管理复制日志(replicated log)的一致性协议。它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同。这使得 Raft 比 Paxos 更容易理解并且更容易在工程实践中实现。为了使 Raft 协议更易懂,Raft将一致性的关键元素分开,如 leader 选举、日志复制和安全性,并且它实施更强的一致性以减少必须考虑的状态的数量。用户研究的结果表明,Raft 比 Paxos 更容易学习。 Raft 还包括一个用于变更集群成员的新机制,它使用重叠的大多数(overlapping majorities)来保证安全性。

简单来说就是解决了分布式集群下的高可用性和分区容错性!

基本概念

节点状态
在这里插入图片描述
The Follower state(随从)
在这里插入图片描述

the Candidate state(候选)
在这里插入图片描述

the Leader state(领导)

选举机制:当前的 leader 宕机时,一个新的 leader 必须被选举出来。(只有候选者才可以发起选举投票)
每个节点都可以发出投票(根据随机自旋时间先后)
NodeC先转变为候选者,并发起投票
在这里插入图片描述
在这里插入图片描述

These messages are sent in intervals specified by the heartbeat timeout
选举结束后通过Leader向随从节点发送心跳监听来确保节点的可用性

日志复制:Leader 必须从客户端接收日志条目然后复制到集群中的其他节点,并且强制要求其他节点的日志和自己的保持一致。

安全性:Raft 中安全性的关键是状态机的安全性:如果有任何的服务器节点已经应用了一个特定的日志条目到它的状态机中,那么其他服务器节点不能在同一个日志索引位置应用一条不同的指令。

算法动画:raft动态演示

参考:百度文库文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adam`南帝·梁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值