我有一个Mongo副本集,在美国有一个主服务器,在欧洲有一个从服务器,以及运行Node with Mongoose的相同位置的节点服务器实例。
Mongo实例包含标记,美国版本{"location":"us"}
和欧洲版{"location":"eu"}
。我试图从欧洲节点服务器执行读取操作。当readPreference
设置为master
时,读取平均需要450毫秒。如果设置为nearest
,则需要70毫秒。
这是Mongoose / Mongo连接网址在后一种情况下的样子:
?replicaSet=MyReplicaSet&readPreference=nearest
现在,我想测试读取首选项标签。为此,我将查询修改为如下所示:
?replicaSet=MyReplicaSet&readPreference=nearest&readPreferenceTags=location:us
然而,即使它现在应该从美国而不是欧洲选择最近的节点,平均读取时间仍然是大约70ms,远远低于预期的450ms。
Mongo URI作为mongoose.createConnection
调用的第一个参数传递。我使用的是Mongoose版本4.4.5
,它作为依赖项使用Mongodb版本2.1.16
。
那个版本的Mongoose不支持通过连接URI传入readPreferenceTags,还是我做错了什么?