本文主要是介绍hashicorp/raft 介绍与源代码分析(三): 集群节点恢复介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
集群节点恢复
各种情况下,重新选主成功后,落后的 follower 需要赶上 leader 的状态:
- follower 已经落地的 log ,需要校对。与 leader 不一致的,直接丢弃
- follower 从头,或从最近的本地镜像中恢复,并追赶应用 log 到状态机
我们分析几种异常情况下,集群是如何自动恢复正常的:
- 1 个 follower 重启了,该 follower 如何最终使自己的状态机赶上 leader
- leader 重启了,且变为 follower,如何最终使自己的状态机赶上 leader
- leader 重启了,且重新选为 leader ,如何正确恢复自己的状态机
情景分析1 - follower 重启
follower 重启实际上又有 2 种情况:
- 无镜像
- 从镜像恢复
不管哪种情况,均能得到自己的 applyIndex applyTerm
然后,follower 会通过追加日志协议,把 applyIndex applyTerm,发给 leader:
leader 会下发自己的 applyIndex 和
这篇关于hashicorp/raft 介绍与源代码分析(三): 集群节点恢复介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!