Raft 是一个用于管理复制日志(实现分布式共识)的算法。它和 Paxos 一样,都是为了解决分布式系统中多个节点如何就一个值(或一系列值)达成一致的问题。Raft 是 Paxos 的现代简化版本,核心目标相同,但设计理念和实现方式有很大不同,旨在比 Paxos 更易于理解和实现。
Raft 由 Diego Ongaro 和 John Ousterhout 在 2014 年的论文《In Search of an Understandable Consensus Algorithm》中提出。其核心目标是设计一个易于理解的共识算法,以便于教学和工程实现。
Raft 通过强领导制来简化管理。它将共识问题分解为三个相对独立的子问题: