diff --git a/raft-zh_cn.md b/raft-zh_cn.md index 41f2c16..1b3d33d 100644 --- a/raft-zh_cn.md +++ b/raft-zh_cn.md @@ -254,7 +254,7 @@ Raft 算法中服务器节点之间通信使用远程过程调用(RPCs), Raft 使用一种心跳机制来触发领导人选举。当服务器程序启动时,他们都是跟随者身份。一个服务器节点继续保持着跟随者状态只要他从领导人或者候选人处接收到有效的 RPCs。领导人周期性的向所有跟随者发送心跳包(即不包含日志项内容的附加条目(AppendEntries) RPCs)来维持自己的权威。如果一个跟随者在一段时间里没有接收到任何消息,也就是**选举超时**,那么他就会认为系统中没有可用的领导人,并且发起选举以选出新的领导人。 -要开始一次选举过程,跟随者先要增加自己的当前任期号并且转换到候选人状态。然后他会并行地向集群中的其他服务器节点发送请求投票的 RPCs 来给自己投票。候选人会继续保持着当前状态直到以下三件事情之一发生:(a) 他自己赢得了这次的选举,(b) 其他的服务器成为领导人,(c) 一段时间之后没有任何一个获胜的人。这些结果会分别的在下面的段落里进行讨论。 +要开始一次选举过程,跟随者先要增加自己的当前任期号并且转换到候选人状态。然后他为自己投票并并行地向集群中的其他服务器节点发送请求投票的 RequestVote RPCs 来给自己投票。候选人会继续保持着当前状态直到以下三件事情之一发生:(a) 他自己赢得了这次的选举,(b) 其他的服务器成为领导人,(c) 一段时间之后没有任何一个获胜的人。这些结果会分别的在下面的段落里进行讨论。 当一个候选人从整个集群的大多数服务器节点获得了针对同一个任期号的选票,那么他就赢得了这次选举并成为领导人。每一个服务器最多会对一个任期号投出一张选票,按照先来先服务的原则(注意:5.4 节在投票上增加了一点额外的限制)。要求大多数选票的规则确保了最多只会有一个候选人赢得此次选举(图 3 中的选举安全性)。一旦候选人赢得选举,他就立即成为领导人。然后他会向其他的服务器发送心跳消息来建立自己的权威并且阻止发起新的选举。