分布式一致性算法Raft!
分布式一致性算法Raft!
月伴飞鱼Raft 是一种更为简单方便易于理解的分布式算法,主要解决了分布式中的一致性问题。
三类角色:
Leader(领袖),Follower(群众),Candidate(候选人)
选举过程
一个最小的 Raft 民主集群需要 三个参与者(A、B、C),这样才可能投出多数票。
初始状态
ABC都是Follower,然后发起选举这时有 三种 可能的情形发生。下图中前二种都能选出
Leader,第三种则表明 本轮投票无效(Split Votes)。对于第三种,每方都投给了自己,结果没有任何一方获得多数票。
之后 每个参与方 随机休息一阵(
Election Timeout)重新发起投票直到一方获得多数票。这里的关键就是随机
timeout,最先从timeout中恢复发起投票的一方向还在timeout中的另外两方 请求投票,这时它就只能投给自己,导致很快达成一致。选出
Leader后,Leader通过 定期 向所有Follower发送 心跳信息 维持其统治。若
Follower一段时间未收到Leader的 心跳,则认为Leader可能已经挂了,然后再次发起 选举 过程。















