Raft协议原理

2018-05-04 16:15:45 浏览数 (1)

* 在Raft中,任何时候一个服务器可以扮演下面角色之一:

  1. Leader: 处理所有客户端交互,日志复制等,一般一次只有一个Leader.
  2. Follower: 类似选民,完全被动
  3. Candidate候选人: 类似Proposer律师,可以被选为一个新的领导人。

Raft阶段分为两个,首先是选举过程,然后在选举出来的领导人带领进行正常操作,比如日志复制等。

  1. 任何一个服务器都可以成为一个候选者Candidate,它向其他服务器Follower发出要求选举自己的请求:
  2. 其他服务器同意了,发出OK。

注意如果在这个过程中,有一个Follower当机,没有收到请求选举的要求,因此候选者可以自己选自己,只要达到N/2 1 的大多数票,候选人还是可以成为Leader的。

  1. 这样这个候选者就成为了Leader领导人,它可以向选民也就是Follower们发出指令,比如进行日志复制。
  2. 以后通过心跳进行日志复制的通知
  3. 如果一旦这个Leader当机崩溃了,那么Follower中有一个成为候选者,发出邀票选举。
  4. Follower同意后,其成为Leader,继续承担日志复制等指导工作:

0 人点赞