Tag
Raft
介绍分布式系统中实现多副本技术的一系列方案,从主从复制到去中心化复制、再到状态机、共识算法,并分析各个方案的优缺点,如何选择主流存储的产品。 重点对Raft算法的分析,Raft 虽然诞生晚,但它却是共识算法里面在工程界应用最广泛的。 它将一个复杂问题拆分成三个子问题,分别是 Leader 选举、日志复制和安全性。 Raft 通过心跳机制、随机化等实现了 Leader 选举,只要集群半数以上节点存活可相互通信,etcd 就可对外提供高可用服务。 Raft 日志复制确保了 etcd 多节点间的数据一致性,我通过一个 etcd 日志复制整体流程图为你详细介绍了 etcd 写请求从提交到 Raft 模块,到被应用到状态机执行的各个流程,剖析了日志复制的核心原理,即一个日志条目只有被 Leader 同步到一半以上节点上,此日志条目才能称之为成功复制、已提交。 Raft 的安全性,通过对 Leader 选举和日志复制增加一系列规则,保证了整个集群的一致性、完整性。