consensus - Raft 集群中的节点如何知道“多数”是什么?
问题描述
我正在阅读 Raft论文并关注数据可视化的秘密生活,似乎大多数在 Raft 中都是至关重要的,无论是对于领导者选举还是附加条目请求。
我的问题是节点如何首先知道集群中的节点总数?是否定义了发现协议或必须在创建集群时配置节点数?还是 Raft 将其留给特定的实现?
我的下一个问题是这个数字是如何更新的(即跟随节点如何标记为关闭),尤其是在网络分区的情况下。
感谢您的任何指示!
解决方案
它主要是特定于实现的。我看过的大多数都允许一些初始集群配置。一个运行,那些允许集群成员更改的通常公开一些 API 来启动它,并且它们通过 raft 日志运行成员(参见第 6 节)。有时您被迫从单个节点开始,并使用成员资格 API 将集群扩展到您想要的大小。
节点重新启动等临时事件不应反映在集群成员中。如果你想永久删除一个节点,因为它的硬件已经死了,那么你会使用上面提到的会员 api。
推荐阅读
- azure - Azure B2C 应用注册 - 为什么我不能更改我的重定向 URI?
- java - 使用参考点在java中对数组进行排序
- apache-flink - Apache Flink:每个分区的水印?
- python - 如何在save()Django上设置一个等于相关模型外键的字段
- python - 如何在 .Net/C# Windows 服务停止时触发 Python 或 C# 脚本运行?
- flutter - 方法 getImage 未定义
- python - 在包内导入模块时出现“ModuleNotFoundError”
- r - 在表示为单个标记的数据框的句子中搜索一系列有序标记
- html - 为什么我的图像没有显示在模态中?
- java - 如果不是所有属性都存在,杰克逊反序列化功能会失败?