Raft是一种一致性算法,与Paxos一样高效,但是更易理解。为了做到更易理解这点,Raft将一些关键元素分离,比如领导人选举,日志复制以及安全性。Raft也提供了新的机制,用于管理集群成员的变化,使用重叠的多数来保证安全。
Raft与许多现存的一致性算法类似,但是有几个新feature:
- 强leader:Raft使用强leader,例如日志只从leader向follower流动,简化日志复制并且使Raft更易理解
- 领导人选举:Raft使用随机的计时器选举leader。只在心跳机制上增加了一点点改动,轻松快速地解决了冲突
- 成员变动:Raft使用joint consensus机制,也就是使新旧配置上的majorities重叠,使集群在配置变动时能够正常工作