记录下最近这方面的思考,欢迎讨论指正。

原理

通过成员变更逐个添加,新成员刚开始只有列席资格,新的日志达成多数之后,才可以投票权。

显然只能通过leader 添加。而leader 刚开始是最早加入的那一个。

实现

add_peer(node) // 添加第一个成员

add_peer(old_config, node) // 添加后边的几个成员