在阅读文档时,我遇到了以下几行: 网络分区 网络分区影响选举的多数形成。如果主节点降低并且副本集的任何部分都没有多数,则该集合将不会选择新的主节点。副本集变为只读。
要避免这种情况,请将大多数实例放在一个数据中心,将少数实例放在任何其他数据中心中。
我不理解粗线。有人能解释它意味着什么..
答案 0 :(得分:0)
作为参考,OP指的是副本集选举文档的Network Partitions section。
假设您有三个数据中心,A
,B
和C
。每个数据中心都有MongoDB副本集rs
的一些节点。 rs
共有5个节点。由于龙卷风/飓风/鲨鱼攻击的组合导致网络分区,每个数据中心与其他数据中心断开连接。 A
无法与B
对话,B
无法与C
对话,A
无法与B
对话,等等如果您在rs
中拥有A
成员的大多数(3),则副本集仍然是健康的,因为A
中的三个成员可以选择其中一个成为主要成员。即使rs
和B
被风淹没/淹没/撕裂,该应用程序仍然可以写入C
。如果您在副本集之间更均匀地分割rs
成员,例如A
中的2,B
中的2和C
中的1,则网络分区将放置rs
处于不健康状态,不能选举小学。 rs
将是只读的,在从A
到B
或C
中的至少一个的连接恢复或{{1}之间恢复连接之前,将不接受任何写入}和B
。