cluster-computing - 为什么建议创建节点数为奇数的集群

标签 cluster-computing distributed leader-election

有几个关于分布式系统的资源,比如 mongo db documentation建议在集群中使用奇数个节点。

拥有奇数个节点有什么好处?

最佳答案

简短回答:在 MongoDB 的这种情况下,拥有奇数个节点会增加集群系统的可用性(正常运行时间)。

查看您链接的 MongoDB 文档中的表格:

+-------------------+------------------------------------------+-----------------+
| Number of Members | Majority Required to Elect a New Primary | Fault Tolerance |
+-------------------+------------------------------------------+-----------------+
|         3         |                    2                     |        1        |
+-------------------+------------------------------------------+-----------------+
|         4         |                    3                     |        1        |
+-------------------+------------------------------------------+-----------------+
|         5         |                    3                     |        2        |
+-------------------+------------------------------------------+-----------------+
|         6         |                    4                     |        2        |
+-------------------+------------------------------------------+-----------------+

请注意,当您拥有奇数个成员并再添加一个(变成偶数)时,您的容错能力并没有提高! (意思是,你的集群不能容忍比原来更多的失败成员)

这是因为 MongoDB 需要大多数成员启动才能选举一个主要成员。此属性并非特定于 MongoDB,而是任何需要大多数成员启动的集群系统(例如,另请参阅 etcd )。

当增加到偶数个节点时,您的系统可用性实际上会下降,因为尽管您的容错能力保持不变,但有更多节点可能发生故障,因此发生故障的可能性会增加。

此外,拥有偶数个成员会降低在存在网络分区的情况下节点的某些子集能够继续运行的可能性。例如,如果您有一个 6 节点集群,那么网络分区可能会将您的节点划分为 2 个 3 节点分区。在这种情况下,两个分区都无法与大多数成员通信,您的集群将变得不可用。

与直觉相反的结论是,如果您有一个偶数成员集群,那么删除其中一个成员实际上是有益的(从高可用性的角度来看)。

关于cluster-computing - 为什么建议创建节点数为奇数的集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823341/

相关文章:

hadoop - 将目录从一个Hadoop集群递归复制到另一个

hadoop - 如何将 hadoop 辅助名称节点与主名称节点分开?

kubernetes - 领导者连队死亡时,我们可以立即更新k8s领导者吗?

cluster-computing - 多用户集群: IBM Platform LSF: user changing priority of jobs

hadoop - 在 yarn 集群上设置 spark 时需要哪些守护进程?

python - 如何检查 slurm 作业是否是数组中最后一个 **RUNNING**?

api - 如何保护私有(private) REST API

ruby-on-rails - Sidekiq - 防止工作人员在特定机器上执行

Kubernetes 服务适用于所有 pod,另一个服务仅适用于领导者