【发布时间】:2015-07-12 16:13:01
【问题描述】:
我已经实现了一个在全球范围内使用的副本集。我在美国俄勒冈州有我的硕士和 4 个中学。加利福尼亚和弗吉尼亚,法兰克福和悉尼。我在这些地区也有网络服务器。这些网络服务器使用 mongoose 连接到 mongo:
var mongoose = require("mongoose");
var dbUrl = "mongodb://***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017/exampleDb";
var dbOptions : {
"replSet": {
"rs_name": "exampleRepSet",
"readPreference": "ReadPreference.SECONDARY_PREFERRED",
"read_preference": "ReadPreference.SECONDARY_PREFERRED",
"w":0,
"slaveOk": true
}
}
mongoose.connect(dbUrl, dbOptions);
我的问题是我的客户对数据库的延迟较高,具体取决于他们与主服务器的距离。加利福尼亚获得 40 毫秒,而悉尼获得 400 毫秒。我不明白为什么会发生这种情况,因为他们应该读取他们所在地区的辅助数据库。
我知道必须对主节点进行写入,但即使我执行查找,也不应该在区域辅助节点上完成并很快返回吗?
我意识到该配置中有一些多余的选项,但我越来越绝望了。我也尝试了"ReadPreference.NEAREST" 选项,但无济于事。
【问题讨论】:
-
你运行的是什么版本的猫鼬?
标签: mongodb mongoose database-replication