【发布时间】:2014-02-21 07:00:32
【问题描述】:
我希望getServerAddress 返回实际处理查询的 Mongo 服务器(副本集节点之一)的地址。
我正在记录 getServerAddress 的输出并且只看到 primary 地址,尽管我非常确定某些查询是由 secondary 处理的.
我有点困惑,因为我在 secondary 中看到查询(已设置 profillingLevel),而 getServerAddress 返回 primary。也许我错了……
这可能是 API 中的错误吗?有人遇到这样的问题吗? getServerAddress 是否有可能总是返回 primary 而某些查询实际上由 secondaries 处理?
【问题讨论】:
-
您需要将您的 readPrefernce 指定为 secondaryPreffered ,即使如此,tag set 也可能对此产生影响。请参阅文档。您的问题中缺少此信息。所以我们需要更多地了解你的配置才能回答。
-
我的问题是关于 API 的。我只是想知道 API 是否完全按照我的预期工作。也就是说,它总是返回实际处理查询的节点的地址。我很困惑,因为 API 和分析显示不同的东西,但我可能弄错了......
-
在第二个想法我可能应该改写这个问题。
-
我的评论是关于“除非你包含关于你的readPreference、服务器配置、可能的标签集在你的问题中的信息没有人可以评论您在调用中看到的行为。API 应响应实际发生的情况。
-
“最近的”阅读偏好被微妙地破坏了。它并不总是做你期望它做的事情。你最好不要依赖它。
标签: java mongodb database-replication