考虑由5个成员组成的副本集:
我想确保我的应用程序在复制期间处理写入首选项。 例如,使用writeConcern w:2我希望复制/写入发生在R1(当然是主要)和R3(辅助)上,但如果R3发生故障,复制过程可以使用任何其他辅助。
使用标记集来处理这种情况并不令人满意,如果R3发生故障,写入将失败。
我可以使用mongodb中有任何写入首选项吗?
注意:(R1,R2)在一个数据中心,(R3,R4)在另一个数据中心,A1在第三个数据中心。
感谢。 BR。
答案 0 :(得分:0)
你可以做的是使用一种叫做“复制链”的东西。它基本上是这样的:
执行这些步骤后,同步应如下所示:
R1
└── R3
├── R2
└── R4
好处:如果R3失败,R2和R4将恢复为从R1同步。
坏处:当R3再次启动时,你必须告诉R2和R4再次从R3同步。
丑陋:当您重新启动R2或R4时,您必须告诉实例再次从R3同步。
但是,此设置基本上可以为您提供所需的功能,而不会产生单点故障。