【发布时间】:2015-05-17 18:42:28
【问题描述】:
使用分布在 3 个数据中心的 mongo
对于本示例,数据中心名称为 A、B、C
当一切顺利时,所有用户流量都指向A
所以 mongo 主要在 A 上,mongo 设置是:
- A 中的 3 台服务器(具有高优先级)
- B 中有 1 台服务器(低优先级)
- C 中的 1 个服务器(优先级 0)
当两种情况发生时,问题是支持 mongo-writes:
- A-B-C 之间没有网络(网络隧道已关闭)
- 数据中心 A 着火了 :),假设数据中心无法正常工作,此时所有用户流量都指向 B,预计 B 将进行一次初选。
场景 1 不是问题,当没有数据中心网络隧道时,A 仍然有大部分副本和高优先级,所以一切都还在工作。
场景 2 无法工作,因为当 A 停止工作时,(A 上的)所有 3 个副本都无法访问,这样在 B 或 C 中将不会重新生成新的主副本,因为大多数副本都已关闭。
如何设置我的副本集以支持这两种情况?
【问题讨论】:
标签: mongodb database-replication high-availability eventual-consistency database