【发布时间】:2012-08-21 05:07:08
【问题描述】:
如果我有针对不同国家/地区的不同网页,并且每个网页都有 2-3 个节点的 mongodb 副本集,我可以使用具有多个副本集的仲裁器,以便它全部投票吗?
或者我需要为每个副本集启动一个仲裁器?
【问题讨论】:
-
所以你有更多的replicaSet,每个replicaSet有2-3个节点,对吧?您希望一个仲裁器位于多个副本集中吗?
-
问题在于,当你启动一个 mongod 实例时,你必须指定 -replSet 参数,从而将潜在的仲裁者链接到那个特定的副本集。所以,我认为你不能在多个副本集上使用一个仲裁器。但是为每个副本集启动一个新的仲裁器并不是什么大问题,因为仲裁器实例非常轻量级。
-
是的,这就是问题所在。我会再等等看,但你的答案似乎合乎逻辑。
-
跨多个数据中心运行 MongoDB 的每个解决方案都是经过修补的解决方案。不要相信 10gen 制造的所有营销热潮。 MongoDB 的复制模型是有限的,并且存在部分缺陷。
-
正如@AndreiSfat 建议的那样.. 一个副本集成员(仲裁器或数据节点)只能属于一个副本集。仲裁进程是轻量级的,因为它不保存任何数据,只参与选举。仲裁者的主要目的是在副本集中有偶数个成员并且需要打破平局投票的情况。
标签: mongodb replication database-replication