很有意思的 Raft 原理,带你动画还原,欢迎来戳 ~~
大家好,我是楼仔!往期精选汇总于此 👉🏻👉🏻👉🏻《原创精选荟萃》,便于大家查阅。
之前写了一篇文章《肝了一个月的ETCD,从Raft原理到实践》,干货真的很多,但是无人转载,同事说文章太长了,不方便阅读。那这篇文章,我只选取里面的 Raft 协议,精华提炼,可读性更强!
大名鼎鼎的 Paxos 算法可能不少人都听说过,几乎垄断了一致性算法领域,在 Raft 协议诞生之前,Paxos 几乎成了一致性协议的代名词。但是对于大多数人来说,Paxos 算法太难以理解了,而且难以实现。因此斯坦福大学的两位教授 Diego Ongaro 和 John Ousterhout 决定设计一种更容易理解的一致性算法,最终提出了 Raft 算法!
Raft 是一种更为简单方便易于理解的分布式算法,主要解决了分布式中的一致性问题。相比传统的 Paxos 算法,Raft 将大量的计算问题分解成为了一些简单的相对独立的子问题,并有着和 Multi-Paxos 同样的性能,下面我们通过动图,以后还原 Raft 内部原理。
Raft 基础
名词解释
Raft协议一共包含如下3类角色:
-
Leader(领袖):领袖由群众投票选举得出,每次选举,只能选出一名领袖;
-
Candidate(候选人):当没有领袖时,某些群众可以成为候选人,然后去竞争领袖的位置;
-
Follower(群众):这个很好理解,就不解释了。
然后在进行选举过程中,还有几个重要的概念:
-
Leader Election(领导人选举):简称选举,就是从候选人中选出领袖;
-
Term(任期):它其实是个单独递增的连续数字,每一次任期就会重新发起一次领导人选举;
-
Election Timeout(选举超时):就是一个超时时间ÿ