Mongodb体系结构和两个数据中心的故障转移

问题描述:

我想知道是否有无缝故障转移mongo replicaset的方式,其中大部分mongodb节点都位于主数据中心。我目前的限制是2个数据中心,第三个数据中心是不可能的。我遇到的问题是,如果数据中心1出现故障,数据中心2中的次要节点将不会升级为主服务器,而无需人工干预。Mongodb体系结构和两个数据中心的故障转移

数据中心1(主): 蒙戈节点(主) 蒙戈节点(仲裁器)

数据中心2(二次): 蒙戈节点(二次)

我看的mongodb白皮书,但他们表示,如果dc1丢失,则需要手动干预才能在dc2主节点中创建mongodb实例。

我的问题是,是否有一个架构在那里或配置,将有可能失去数据中心1,仍然有能力让数据中心2接管写启用没有手动干预/重新配置。这可能不会导致3数据中心架构路径。是否有可能让每个站点上的两个3成员副本集保持同步,并可能为连接应用程序在网络级执行故障转移?

谢谢。

如果你带2个数据中心给我,最简单的解决方案是只覆盖主服务器失败。好消息是如果奴隶死了 - 你只需要等待。

如果访问主要失败,您需要回调过程,将强制奴隶主。如果您没有花费更多时间创建缓冲查询并等待交换机回拨的网关,该开关将导致应用程序停机。这样你就只会增加超时时间。

在主服务器再次生效后,您需要连接到它(因为您的从服务器节点不可靠) - 这将再次导致停机时间 - 您需要另一个检查主服务器是否处于活动状态的进程(来自数据中心2)它是触发事件并继续回调。

强制Slave作为Primary的手动干预可以打包成脚本。

对我来说,这里最好的解决方案是与第三个数据中心一起,仲裁器将留在那里。努力跳过它并将应用程序逻辑放在那里是不值得的。 Mongo中的自动故障转移工作得很好,而且可靠。如果您使用应用程序逻辑来实现2个数据中心,那么您可能会遇到很多问题......我宁愿随他们的建议去做。

首先,您已经注意到,您不能仅使用两个节点进行自动故障转移。其次,当你认为“第三”数据中心的时候,钱不是真正的问题。你可能会问为什么或“多么如此”?如你所知,你需要仲裁者。仲裁者确实不需要资源,任何小型的Linux机器都可以。小型VPS机器的成本并不高。 Here you can find machine 1 x 2.40 GHz, 512 MB, 20 GB只有1,24€/月。 From here you get beefier machine with 1.99€/month.

其实这两个地方都可以用这些“小”机器运行相当大的mongodb。