Raft分布式一致性算法的一些概念
我们来讲Raft算法之前,先普及一些Raft协议涉及到的概念,了解这些概念非常重要,我最开始学习的时候,就是没怎么理解这些概念,才多花了1个小时:
Raft的3个重要概念
有三个Raft的概念非常重要:
-
选取任期(term):节点选择领导者的这段时间,我们就做选举任期。 比如新的选举任期,即整个集群初始化时,或者新的Leader选举就会开始一个新的选举任期。注意这里是选举的任期,不是选举后,这个人做了多久领导者。
-
大多数人同意:假设一个集群由N个节点组成,那么大多数就是至少N/2+1。例如:3个节点的集群,大多数就是至少2;5个节点的集群,大多数就是至少3。在投票的过程中,自己是可以选择自己的,而且自己总是选择自己。
-
状态:每个节点有三种状态,且某一时刻只能是三种状态中的一种:Follower(图左),Candidate(图中),Leader(图右)。假设三种状态不同图案如下所示: