上期我们讲解了四种集群分布式控制算法之后,那么,接下来向大家介绍一下分布式控制中的常用算法吧。但是为了帮助大家更好的理解raft算法,先从一个简单的例子入手吧!
假如某班(组成人员:follower)要进行班长的选举(leader),初始时没有一个人自告奋勇,在一定时·间计时结束后,有三名成员毛遂自荐[candidate(A,B,C)],愿意担任班长(leader),但是大家都优秀,那么谁担任合适呢?A,B,C三人每人带一个随机时间的倒计时器,倒计时一结束,这个人(假设A)就会去搜集询问其他人对于他的看法,即能不能当选班长?如果他获得了足够多的票数,那么他就自然晋升为班长。如果之后,A因为违法乱纪被撤销班长一职,则其他follower,与上期candidate,依然可以继续提出申请班长一职,继续leader 的争夺。而对于后面提到的日志复制,在本例子中可以理解为,数学老师(client)要求班长统计对于数学课的意见建议,班长收到了老师信息,并将此信息传送至其他人,一段时间后有个别人进行反馈,班长将其计入自己的信息统计,并将此意见传向其他follower,在一定时间之后若是受到大多数人(follower)的反馈,那么leader就将关于数学课的意见彻底统计,并反馈至数学老师(client)。