Raft 协议是一种为了提高易理解性(Understandability)和易实现性而设计的分布式共识算法(Consensus Algorithm)。 在分布式系统中,为了保证“数据不丢、服务不挂”,通常会将数据复制到多台服务器上。但如果某台机器宕机或网络发生抖动,如何让所有机器对某个数据更改“达成一致”?这就是分布式共识要解决的问题。著名的 Paxos 协议虽然严谨,但极其晦涩且难以工程落地;Raft 就是为了替代 Paxos 而诞生的。 理解 Raft 协议,核心只需要抓住 “1 个目标、3 种角色、2 个核心机制”。 一、 核心思想:强 Leader 模型 Raft 采用了……

阅读全文