gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:02:17 25 4
gpt4 key购买 nike

有几个关于分布式系统的资源,比如 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com