如果只配置了一个主机,Rails 是否会自动找出 MongoDB 副本集中的主服务器?

Does Rails automagically figures out the primary in a MongoDB replica set if only has one host configured?

场景如下:

节点 1:

节点 2:

我知道 mongoid 配置应该在副本集中有一个主机列表,而不是只有一个,

但是在测试以上内容时我可以看到,如果在 Node2 中访问 Web,Node1[=51= 中的 mongo ] 是获得负载的主机,即使该主机未在 Node2 配置中配置。

那么,我可以就这样在两个节点上保留 mongoid 的配置吗?

是否真的有必要在配置中使用主机列表,或者 Rails 中的驱动程序会自行解决?

让我知道更多详细信息是否有帮助或解释不清楚。

更新:来自网络的负载是读取和写入。

大多数驱动程序会在连接时调用 db.isMaster(),这将 return 副本集中的一组节点。这允许驱动程序发现其他节点并重新连接到主节点。通常,您应该列出所有已知节点,以防您播种的节点暂时关闭。由于您已经配置了一个副本集,因此您必须已经为所有节点分配了一个地址,那么为什么不将其列在连接 URI 中呢? 提示:如果无法为所有主机设置正确的 DNS 引用,可以在 /etc/hosts 中使用别名