raft学习

http://thesecretlivesofdata.com/raft/

选举 

角色:  leader 领导者 Follower跟随者  Candidate候选者

如果跟随者在一定时间内,么有收到领导者的消息(选举超时,选举超时设置为150ms到300毫秒之间),则自身将变为候选者,向其他节点发送投票请求,如果获得了多数票,则将自身变为领导者,同时向跟随者发送附加条目信息。

消息发送周期为:heartbeat timeout. 跟随者会响应每个附加条目信息。

任期会持续到跟随者不再响应,并成为后续者为止。

如果出现选举冲突,将重新发起选举,因为选举超时时间为随机的,所以

事物操作日志同步

领导者接收到客户端提交的请求时,先记录请求日志,并将请求转发给跟随者,如果半数跟随者响应了该请求,
则领导者可以进行提交,并反馈回客户端。并在此发送确认请求给跟随者 。

分区状态下,追随者不能达到半数,这领导者不能回应客户端,数据处于提交状态。

如果发现有比自己具有更高的选举任期的,将自己下台。并回滚自己的状态。

原文地址:https://www.cnblogs.com/maobuji/p/10794949.html