第二个问题是集群leader可能不属于新配置中的成员 。这种情况,leader提交了Cnew后立马下台(变回follower状态) 。这表示会有一段时间(正在提交Cnew)leader会管理一个不包含自己的集群;它复制日志记录但是在计算大多数时不会把自己考虑进去 。在Cnew被提交的时候变更leader是因为这是新配置可以独立运行的最早的时间点(新的leader肯定会包含Cnew) 。在这个点之前,有可能选出一个包含Cold配置的leader 。
第三个问题是移除server(不在Cnew)会扰乱集群 。这些server不会受到心跳,所以它们会超时并开始新的投票 。它们会使用新的term发送RequestVote RPCs ,这会导致当前的leader转换到follower状态 。最终会选出一个新的leader,但是已经移除的server会再次超时,上面的过程会重复发送,影响了可用性 。
为了避免这样的问题,server在确认当前leader存在时,会忽略RequestVote RPCs 。确切的来说,如果server在最小选举超时时间内收到一个来自当前leader的 RequestVote RPC ,它不会更新它的term或者投票 。这不会影响正常的选举,每个server在开始选举之前都至少会等待一个最小选举超时时间 。然而,这避免了来自移除节点的干扰:如果一个leader可以发送心跳到集群中,它不会被更大的term罢免 。
参考:https://github.com/maemual/raft-zh_cn
经验总结扩展阅读
- 2023年10月12日祭拜神灵好不好 2023年10月12日是祭拜神灵的黄道吉日吗
- C语言小白刷题
- 2023年10月12日酬神黄道吉日 2023年10月12日是酬神的黄道吉日吗
- 谁会疼爱甲木女
- 男戊土与庚金女相配吗
- 海信电视哪款好 性价比高的电视型号推荐
- 海信LED55EC750US电视怎么样 海信LED55EC750US电视好不好
- 飞利浦吸尘器哪种型号好 飞利浦吸尘器怎么拆卸和安装
- iqooz3的缺点_iqooz3骂声一片
- 11月14日今起三天重庆大部阴雨持续高海拔地区有雪 气温低迷需添衣