在两个数据中心运行mongodb并进行选举。

问题描述 投票:0回答:1

我已经阅读了mongoDB的文档,但它并没有真正解决我的问题。

有没有一种方法可以在两个数据中心(DC)中运行mongoDB,并在一个DC丢失的情况下让一个主服务器可用。

这个 文件 的MongoDB说。

  • 两个数据中心:两个成员到数据中心1,一个成员到数据中心2。如果复制集的成员中有一个是仲裁者,就把仲裁者与一个有数据承载的成员分配到数据中心1。
    • 如果数据中心1宕机,则副本集变为只读。
    • 如果数据中心2宕机,副本集仍然可以写,因为数据中心1的成员可以举行选举。

但我需要让MongoDB在DC1宕机时也可以写。有什么办法可以让这个工作顺利进行。

我们用来监控服务的软件能够对一个DC的丢失做出反应。因此,当DC1宕机时,可能会在DC2上启动一个仲裁器。如果DC1重新上线,我们可以关闭DC2的仲裁器,然后重新启动DC1的仲裁器。

问题是,这能行吗?

我知道如果能在三个DC上运行这一切会更好,但我们的客户只有两个DC。

先谢谢您的帮助。

mongodb high-availability
1个回答
2
投票

你可以提供一个这样的设置。

enter image description here

你可以决定哪个数据中心拥有原来的主节点,如果你愿意,你可以有更多的次要节点。

然后,将DC2中的次要节点设置为比DC1中的节点有更高的优先级。

这样,当主节点变得不可用时,由于数据库服务器的故障,或整个DC中断,下一个主节点将被选择在DC2中。

另外,你不需要(或者说不想要)仲裁器,建议不要,这一点在MongoDB大学的课程中会详细讨论为什么。集群管理。

编辑。 不知道你的全部要求,但你是否也看到了: https:/docs.mongodb.commanualtutorialdeploy-geographically-distributed-replica-set。

© www.soinside.com 2019 - 2024. All rights reserved.