? ?一旦成为领导?人:发送空的附加?日志 RPC(?心跳)给其他所有的服务器器;在?一定的空余时间之后不不停的重复发送,以阻?止跟随者超时(5.2 节)
? 如果接收到来?自客户端的请求:附加条?目到本地?日志中,在条?目被应?用到状态机后响应客户端(5.3 节)
? 如果对于?一个跟随者,最后?日志条?目的索引值?大于等于 nextIndex,那么:发送从 nextIndex 开始的所有?日志条?目:? 如果成功:更更新相应跟随者的 nextIndex 和 matchIndex? 如果因为?日志不不?一致?而失败,减少 nextIndex 重试
? 如果存在?一个满?足N > commitIndex的 N,并且?大多数的matchIndex[i] ≥ N成?立,并且log[N].term == currentTerm成?立,那么令 commitIndex 等于这个 N (5.3 和 5.4 节)
图 2:?一个关于 Raft ?一致性算法的浓缩总结(不不包括成员变换和?日志压缩) 。
特性 解释
选举安全特性
对于?一个给定的任期号,最多只会有?一个领导?人被选举出来(5.2 节)
领导?人只附加原则
领导?人绝对不不会删除或者覆盖?自?己的?日志,只会增加(5.3 节)
?日志匹配原则
如果两个?日志在相同的索引位置的?日志条?目的任期号相同,那么我们就认为这个?日志从头到这个索引位置之间全部完全相同(5.3 节)
领导?人完全特性
如果某个?日志条?目在某个任期号中已经被提交,那么这个条?目必然出现在更更?大任期号的所有领导?人中(5.4 节)
状态机安全特性
如果?一个领导?人已经在给定的索引值位置的?日志条?目应?用到状态机中,那么其他任何的服务器器在这个索引位置不不会提交?一个不不同的?日志(5.4.3 节)
图 3:Raft 在任何时候都保证以上的各个特性 。
5.1 Raft 基础?一个 Raft 集群包含若?干个服务器器节点;通常是 5 个,这允许整个系统容忍 2 个节点的失效 。在任何时刻,每?一个服务器器节点都处于这三个状态之?一:领导?人、跟随者或者候选?人 。在通常情况下,系统中只有?一个领导?人并且其他的节点全部都是跟随者 。跟随者都是被动的:他们不不会发送任何请求,只是简单的响应来?自领导者或者候选?人的请求 。领导?人处理理所有的客户端请求(如果?一个客户端和跟随者联系,那么跟随者会把请求重定向给领导?人) 。第三种状态,候选?人,是?用来在 5.2 节描述的选举新领导?人时使?用 。图 4 展示了了这些状态和他们之间的转换关系;这些转换关系会在接下来进?行行讨论 。
图 4:服务器器状态 。跟随者只响应来?自其他服务器器的请求 。如果跟随者接收不不到消息,那么他就会变成候选?人并发起?一次选举 。获得集群中?大多数选票的候选?人将成为领导者 。在?一个任期内,领导?人?一直都会是领导?人直到?自?己宕机了了 。
图 5:时间被划分成?一个个的任期,每个任期开始都是?一次选举 。在选举成功后,领导?人会管理理整个集群直到任期结束 。有时候选举会失败,那么这个任期就会没有领导?人?而结束 。任期之间的切换可以在不不同的时间不不同的服务器器上观察到 。Raft 把时间分割成任意?长度的任期,如图 5 。任期?用连续的整数标记 。每?一段任期从?一次选举开始,就像章节 5.2 描述的?一样,?一个或者多个候选?人尝试成为领导者 。如果?一个候选?人赢得选举,然后他就在接下来的任期内充当领导?人的职责 。在某些情况下,?一次选举过程会造成选票的?瓜分 。在这种情况下,这?一任期会以没有领导?人结束;?一个新的任期(和?一次新的选举)会很快重新开始 。Raft 保证了了在?一个给定的任期内,最多只有?一个领导者 。
- 人生低谷的时候,怎么寻找出路?
- 我的世界大全 我的世界
- 网上怎样找女朋友 网上找人上哪个网站怎么寻找亲人
- 87%以上新兵拥有大专学历,低学历当兵如何寻找出路?
- 寻找尸源女 玩尸女的看法
- 超级巨星游戏下载
- 寻找那遗失的年味
- 寻找乡村的味道
- 寻找心灵的故乡
- 创业扶持项目 如何寻找创业项目
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
