不不同的服务器器节点可能多次观察到任期之间的转换,但在某些情况下,?一个节点也可能观察不不到任何?一次选举或者整个任期全程 。任期在 Raft 算法中充当逻辑时钟的作?用,这会允许服务器器节点查明?一些过期的信息?比如陈旧的领导者 。每?一个节点存储?一个当前任期号,这?一编号在整个时期内单调的增?长 。当服务器器之间通信的时候会交换当前任期号;如果?一个服务器器的当前任期号?比其他?人?小,那么他会更更新?自?己的编号到较?大的编号值 。如果?一个候选?人或者领导者发现?自?己的任期号过期了了,那么他会?立即恢复成跟随者状态 。如果?一个节点接收到?一个包含过期的任期号的请求,那么他会直接拒绝这个请求 。Raft 算法中服务器器节点之间通信使?用远程过程调?用(RPCs),并且基本的?一致性算法只需要两种类型的 RPCs 。请求投票(RequestVote) RPCs 由候选?人在选举期间发起(章节 5.2),然后附加条?目(AppendEntries)RPCs 由领导?人发起,?用来复制?日志和提供?一种?心跳机制(章节 5.3) 。第 7 节为了了在服务器器之间传输快照增加了了第三种 RPC 。当服务器器没有及时的收到 RPC 的响应时,会进?行行重试,并且他们能够并?行行的发起 RPCs 来获得最佳的性能 。
5.2 领导?人选举Raft 使?用?一种?心跳机制来触发leader选举 。当服务器器程序启动时,他们都是跟随者身份 。如果从领导?人或者候选者处接收到有效的 RPCs,那么就?一直是跟随者 。领导者周期性的向所有跟随者发送?心跳包(即不不包含?日志项内容的附加?日志项 RPCs)来维持?自?己的权威 。如果?一个跟随者在?一段时间?里里没有接收到任何消息,也就是选举超时,那么他就会认为系统中没有可?用的领导者,并且发起选举以选出新的领导者 。要开始?一次选举过程,跟随者先要增加?自?己的当前任期号并且转换到候选?人状态 。然后他会并?行行的向集群中的其他服务器器节点发送请求投票的 RPCs 来给?自?己投票 。候选?人会继续保持着当前状态直到以下三件事情之?一发?生:(a) 他?自?己赢得了了这次的选举,(b) 其他的服务器器成为领导者,(c) ?一段时间之后没有任何?一个获胜的?人 。这些结果会分别的在下?面的段落?里里进?行行讨论 。当?一个候选?人从整个集群的?大多数服务器器节点获得了了针对同?一个任期号的选票,那么他就赢得了了这次选举并成为领导?人 。每?一个服务器器最多会对?一个任期号投出?一张选票,按照先来先服务的原则(注意:5.4 节在投票上增加了了?一点额外的限制) 。要求?大多数选票的规则确保了了最多只会有?一个候选?人赢得此次选举(图 3 中的选举安全性) 。?一旦候选?人赢得选举,他就?立即成为领导?人 。然后他会向其他的服务器器发送?心跳消息来建?立?自?己的权威并且阻?止新的领导?人的产?生 。在等待投票的时候,候选?人可能会从其他的服务器器接收到声明它是领导?人的附加?日志项 RPC 。如果这个领导?人的任期号(包含在此次的 RPC中)不不?小于候
选?人当前的任期号,那么候选?人会承认领导?人合法并回到跟随者状态 。如果此次 RPC 中的任期号?比?自?己?小,那么候选?人就会拒绝这次的 RPC 并且继续保持候选?人状态 。第三种可能的结果是候选?人既没有赢得选举也没有输:如果有多个跟随者同时成为候选?人,那么选票可能会被?瓜分以?至于没有候选?人可以赢得?大多数?人的?支持 。当这种情况发?生的时候,每?一个候选?人都会超时,然后通过增加当前任期号来开始?一轮新的选举 。然?而,没有其他机制的话,选票可能会被?无限的重复?瓜分 。Raft 使?用随机超时时间的?方法来确保很少会发?生选票持平的情况,就算发?生也能很快的解决 。为了了阻?止选票起初就被持平,选举超时时间是从?一个固定的区间(例例如 150-300 毫秒)随机选择 。这样可以把服务器器都分散开以?至于在?大多数情况下只有?一个服务器器会选举超时;然后他赢得选举并在其他服务器器超时之前发送?心跳包 。同样的机制被?用在选票持平的情况下 。每?一个候选?人在开始?一次选举的时候会重置?一个随机的选举超时时间,然后在超时时间内等待投票的结果;这样减少了了在新的选举中另外的选票持平的可能性 。9.3 节展示了了这种?方案能够快速的选出?一个领导?人 。领导?人选举这个例例?子,体现了了可理理解性原则是如何指导我们进?行行?方案设计的 。起初我们计划使?用?一种排名系统:每?一个候选?人都被赋予?一个唯?一的排名,供候选?人之间竞争时进?行行选择 。如果?一个候选?人发现另?一个候选?人拥有更更?高的排名,那么他就会回到跟随者状态,这样?高排名的候选?人能够更更加容易易的赢得下?一次选举 。但是我们发现这种?方法在可?用性?方?面会有?一点问题(如果?高排名的服务器器宕机了了,那么低排名的服务器器可能会超时并再次进?入候选?人状态 。?而且如果这个?行行为发?生得?足够快,则可能会导致整个选举过程都被重置掉) 。我们针对算法进?行行了了多次调整,但是每次调整之后都会有新的问题 。最终我们认为随机重试的?方法是更更加明显和易易于理理解的 。
- 人生低谷的时候,怎么寻找出路?
- 我的世界大全 我的世界
- 网上怎样找女朋友 网上找人上哪个网站怎么寻找亲人
- 87%以上新兵拥有大专学历,低学历当兵如何寻找出路?
- 寻找尸源女 玩尸女的看法
- 超级巨星游戏下载
- 寻找那遗失的年味
- 寻找乡村的味道
- 寻找心灵的故乡
- 创业扶持项目 如何寻找创业项目
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
