Raft 共识算法学习笔记 三:成员变更
文章 《Raft 共识算法学习笔记 一:领导人选举》 和 《Raft 共识算法学习笔记 二:日志复制》 分别讲述了 Raft 算法如何进行领导人选举和如何进行日志复制。
这篇文章继续讲述 Raft 算法如何处理集群成员节点变更的问题。
考虑一种场景,原来 Raft 集群中存在三个节点,现在需要增加2 个节点。那么,在这种情况下, Raft 算法如何能保证同一个任期内,只有一个领导者呢?
在 Raft 论文中,作者使用配置(configuration)来表示集群由哪些节点组合,即集群所有节点的信息集合。在稳定状态下,所有节点的配置都是一致的。
由于集群存在多个节点,因此,一次性原子地更新所有节点的配置是不可能的,集群在更新配置的过程中,可能会出现新旧配置的两个大多数: