我想要在多个站点之间进行复制以实现冗余。
我正在考虑部署以下内容:部署5个Mongod实例(必须是奇数,否则需要一个仲裁员),在站点A上部署3个,在站点B上部署2个。
如果站点B宕机了,我们还有3个在站点A上运行是很好的,但是如果站点A宕机了,那么我们将只有2个神灵在运行。这样可以吗?哪一个会成为大师呢?在我手动启动第三个之前,他们可以自己管理吗?
第二个问题,在站点重新连接后,mongo将如何处理?
发布于 2014-04-04 07:21:13
只有当超过50%的节点可用时,mongo副本集才可用。
在您的情况下,如果站点A出现故障,则您的副本集将离线
一种可能的替代方案是在A中运行2个副本节点,在B中运行2个副本节点,然后在外部位置运行仲裁器或延迟的副本。
延迟的副本将提供您的数据的进一步备份,但我会确保您将其优先级设置为0,这将确保虽然它是投票成员,但它不会被提升为主要成员。
拥有第三个站点可能不可行,但这是最安全的方法。
显然,确保站点A ->站点C、站点B ->站点C之间的通信安全将带来复杂的问题。
如果您真的被限制为2个站点,那么确保副本集保持健康的唯一真正方法是监视健康的节点数量,并具有一些自动缩放功能,以确保您始终有足够的节点在主节点上投票。然而,我认为在这个解决方案中,在启动新服务器并将其添加到副本集中时,您仍然会有一些停机时间。
https://stackoverflow.com/questions/22849391
复制相似问题