http://thesecretlivesofdata.com/raft/
选举
角色: leader 领导者 Follower跟随者 Candidate候选者
如果跟随者在一定时间内,么有收到领导者的消息(选举超时,选举超时设置为150ms到300毫秒之间),则自身将变为候选者,向其他节点发送投票请求,如果获得了多数票,则将自身变为领导者,同时向跟随者发送附加条目信息。
消息发送周期为:heartbeat timeout. 跟随者会响应每个附加条目信息。
任期会持续到跟随者不再响应,并成为后续者为止。
如果出现选举冲突,将重新发起选举,因为选举超时时间为随机的,所以
事物操作日志同步
领导者接收到客户端提交的请求时,先记录请求日志,并将请求转发给跟随者,如果半数跟随者响应了该请求,
则领导者可以进行提交,并反馈回客户端。并在此发送确认请求给跟随者 。
分区状态下,追随者不能达到半数,这领导者不能回应客户端,数据处于提交状态。
如果发现有比自己具有更高的选举任期的,将自己下台。并回滚自己的状态。