【发布时间】:2019-01-29 21:07:40
【问题描述】:
我有 4 台服务器,每台服务器都托管一个网站和一个 mongo 副本集。
- MongoDB 版本:v3.4.13
- 驱动:PHP
服务器 1 是主服务器。
- 位于西海岸
服务器 2 是 SECONDARY,带有标签:{ location: 'east' }
位于东海岸
我正在使用连接字符串连接到数据库:mongodb://localhost:27017/?replicaSet=rs&readPreference=nearest&readPreferenceTags=location:east
服务器 3 和 4 是 SECONDARY,没有标签。
我希望服务器 2 从其本地数据库中读取,但它正在从主数据库(或另一个辅助数据库,我无法确定,但它绝对不是从其本地数据库中读取)读取)
- 我怀疑它没有从自己的 SECONDARY db 中读取数据,因为我运行的任何查询都有大约 3 秒的延迟。
如何告诉服务器 2 从它自己的本地 SECONDARY db 中读取?
【问题讨论】:
-
你能澄清
local的意思吗?这可能是local数据库(复制操作日志和其他非复制集合所在的位置)或本地数据(即从任何其他数据库读取)。我怀疑你的意思是后者,但从目前的描述中并不清楚。编辑您的描述以包含有关您正在连接的驱动程序和版本的信息以及您如何验证从预期服务器返回的数据也会很有帮助。 -
@Stennie 你是对的,我希望它从自己的本地数据中读取,以便读取速度非常快。数据库在东海岸,我不希望它从西海岸的数据库中读取。我已经更新了我的问题。
标签: mongodb mongodb-replica-set