2

我正在做一个项目,我希望能够指定副本集的某些节点永远不能是主节点,即,如果发生故障,所有主节点都死了,系统应该被降低到只读状态直到出现一些具有主要能力的节点。这可能吗?如果是怎么办?如果不是最好的方法是什么。

4

2 回答 2

3

这是来自文档(强调我的):

priority- 服务器具有潜在选举为主要的优先级。最高优先级的成员将成为主要成员。默认 1.0。优先级为零意味着服务器永远不能是主要的。

因此,将优先级设置为零应该可以达到您想要的效果。

于 2010-10-29T08:26:07.237 回答
1

据我所知,mongodb 还不完全支持您的要求。如果在没有主节点的情况下重新启动只读从节点,它将进入 STARTUP2 状态,而不是 SECONDARY。在 STARTUP2 中尝试查询 mongod 实例将失败。

因此,如果您的设置不可靠,例如,您的主集群和只读服务器集群位于同一个城市并且停电,您最终会导致主 DC 停机(有人忘记检查发电机和 UPS)和只读服务器恢复正常(其他 DC 中的生成器工作正常),那么您将处于从站无法工作的情况。

于 2010-12-01T11:40:07.597 回答