Raft协议的集群中有三类角色:

  1. Leader,领导人
  2. Follower,群众
  3. Candidate,候选人

过程

刚启动时,所有集群角色都处于Follower状态,当发现没有Leader时,Follower会将自己作为Candidate发起竞选投票,当收到大多数Follower的投票时,会晋升为Leader,若有多个Candidate得票相同,双方等待一个随机后时间后,重新发起竞选。
当确定Leader之后,Leader每隔一段时间会想Follower发送心跳续约,来告诉Follower自己还存活,并负责日志转发。当Follower一段时间未收到Leader的心跳,则认为Leader可能挂了,会发起新的选举。