mongodb 没有在副本集中使用本地数据库

mongodb not using local database in replica set

我有 4 台服务器,每台服务器托管一个网站和一个 mongo 副本集。

服务器 1 是主服务器。

服务器 2 是次要服务器,标签为:{ location: 'east' }

服务器 3 和 4 是没有标签的次要服务器。

我希望服务器 2 从它的本地数据库读取,但它是从主数据库(或另一个辅助数据库,我不知道,但它绝对不是从它的本地数据库读取)读取的)

如何让服务器 2 从它自己的本地 SECONDARY 数据库读取数据?

在您的连接字符串中包含 readPreferenceTags。参考online doc.

顺便说一下,副本集中的节点数量不应为偶数,除非其中一个节点没有投票权。

解决方案:集群中的所有服务器都需要能够连接到集群中的所有其他服务器。

事实证明,由于我的 iptables 中设置了一些规则,我的一些辅助设备无法连接到另一个辅助设备。

一旦集群中的所有服务器都能够相互连接,速度就会显着提高。