一、raft算法引入
在寻找一种易于理解的一致性算法的研究(In Search of an Understandable Consensus Algorithm-extended version) 论文中,作者提出raft算法主要用来在分布式环境下管理日志的状态复制。为了解决paxos算法的难于理解,raft算法中给server引入了三个角色(状态),分别为: Leader、follower、cadidate。并将一致性算法划分成三个子问题来解决:Leader 选举、日志复制、安全性。集群中任何一个server在某一时刻只能处于一种角色状态且只能有一个server处于Leader角色状态。客户端所有的写请求都发送给Leader或由follower转发给leader,由Leader将写请求日志复制到所有follower结点来保证结点间数据的一致性。当Leader结点出现故障,或者follower与Leader之间的心跳检测中断时,进行Leader的重新选择。下面将分别从三个方面来详细讨论raft算法的处理流程以及在安全性上采取的应对策略。 在寻找一种易于理解的一致性算