我正在阅读 Raft paper并关注 secret life of data visualisation似乎多数在 Raft 中至关重要,无论是领导选举还是追加条目请求。
我的问题是节点首先如何知道集群中的节点总数?是否定义了发现协议(protocol)或必须在创建集群时配置节点数量?还是 Raft 把这个留给特定的 implementations ?
我的下一个问题是这个数字是如何更新的(即跟随者节点如何标记为关闭),尤其是在网络分区的情况下。
感谢您的任何指针!
最佳答案
它主要是实现特定的。我看过的大多数都允许进行一些初始集群配置。一个运行,那些允许集群成员更改的通常会公开一些 API 来启动它,并且它们通过 raft 日志运行成员资格(请参阅 section 6 )。有时,您不得不从单个节点开始,然后使用成员资格 API 将集群扩展到您想要的大小。
节点重新启动等暂时性事件不应反射(reflect)在集群成员资格中。如果你想永久删除一个节点,因为它的硬件已经死了,那么你可以使用上面提到的成员资格 api。
关于consensus - Raft 集群中的节点如何知道 "majority"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56003721/