有人可以帮助验证我们的设置
设置4节点MongoDB集群 1个主要(写入),3个辅助(读取)如果主要关闭,3个辅助可以打破平局并选择次要到主要
一旦我在开始时以这种方式进行设置,那么当负载增加时,我需要做的就是继续成对地添加节点到集群。 (成对添加节点将有助于我们跟上性能并降低群集更改的频率,同时我们读取的内容比写入更多,在某些时候我们还必须考虑扩展写入)
非常感谢帮助。
感谢。
答案 0 :(得分:0)
是的,需要仲裁者,否则如果2个节点出现故障或者不可用,则不会有主节点 - MongoDB需要严格多数(> 50%)的选票才能选出主节点,在您的情况下大多数是4分中的3分(4分中有2分不大于50%)。如果你添加一个仲裁器,那个数字仍然是3,但是你可以让一个主节点有2个数据承载节点。
至于为什么,请考虑以下可能性:
2个节点与其他2个节点隔离 - 它们仍处于运行状态,但无法相互通信。现在有两张选票和#34;分裂"并没有办法打破平局 - 每一方在主要投票方面同样有效,如果没有严格的多数规则,你最终会得到2个初选,并且一旦拆分自行解决,就无法解决写入问题。在分割的任一侧添加仲裁器,您就没有这种歧义。
这种情况有多种排列,当票数甚至是我不会进入这里时。可以说运行副本集时的最佳做法是始终拥有奇数票数,从而避免出现这些情况。