小编axe*_*otl的帖子

如何设置一个不隐藏的mongodb延迟从站?

出于测试目的,我试图通过设置 slaveDelay=n 的从站来模拟 mongodb 集群中的复制延迟。事实证明,这神奇地导致奴隶被隐藏,所以我的测试无法访问它。

MongoDB的文档状态“一般来说,我们不希望被用于slaveOkay延迟成员读取因此,设置slaveDelay还隐藏应用程序中的成员,就好像您还可以设置隐藏:。真正的”

有没有办法为我的“非典型”用例进行配置?或者有没有更好的方法来模拟从具有不同时间延迟的不同从站读取?

我尝试使用 TaggedReadPreference 强制测试代码连接到延迟的从站,但这导致

com.mongodb.MongoException: Could not find any valid secondaries with the supplied tags ('{ "delayed" : "true"}'
Run Code Online (Sandbox Code Playgroud)

显然,Java 驱动程序看不到辅助驱动程序。当我删除“slaveDelay”设置时,它连接正常。

这是我的集群配置:

rs.reconfig({
"_id" : "rs0",
"version" : 4,
"members" : [
    {   "_id" : 0,
        "host" : "localhost:27017",
        "priority" : 0,
        slaveDelay: 10,
        tags: { delayed: "true" }
    },
    {   "_id" : 1,
        "host" : "localhost:27018"
    },
    {   "_id" : 2,
        "host" : "localhost:27019",
        "arbiterOnly" : true
    }
]
})
Run Code Online (Sandbox Code Playgroud)

mongodb database-replication

5
推荐指数
1
解决办法
1758
查看次数

标签 统计

database-replication ×1

mongodb ×1