跳到主要内容

分布式一致性算法

Raft

Raft 算法有明确的领导者选举机制。当跟随者一段时间没有收到领导者的心跳消息时,就会触发选举过程。节点从跟随者状态转换为候选人状态,向其他节点发送请求投票消息来竞争领导者角色。

只有获得多数节点投票的候选人才会成为领导者,并且领导者在集群中承担主要的协调和管理工作,如接收客户端请求、复制日志到跟随者等。这种明确的选举过程使得集群在领导者出现故障时能够快速选出新的领导者,保证系统的可用性。

思想、实现上是比较简单,容易理解的。

Paxos

Paxos 算法没有像 Raft 算法那样明确的领导者选举阶段。在 Paxos 中,提议者和接受者的角色相对平等,通过一系列的消息交互来达成共识。虽然在某些实现中可能会有一个事实上的 “领导者” 角色(例如经常成功提出提议的提议者),但这个角色不是通过像 Raft 那样明确的选举机制产生的。

例如,在 Paxos 的 Prepare 阶段,提议者竞争成为提出有效提议的节点,但这种竞争不像 Raft 选举那样有一个明确的、针对领导者角色的选举过程。

思想、实现上相对于Raft是比较复杂和难以理解的。