gpt4 book ai didi

mongodb - 如何设置不隐藏的mongodb延迟slave?

转载 作者:可可西里 更新时间:2023-11-01 09:46:19 25 4
gpt4 key购买 nike

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

mongodb documentation状态“通常我们不希望延迟成员用于 slaveOkay 读取。因此,设置 slaveDelay 也会从您的应用程序中隐藏该成员,就好像您还设置了 hidden:true 一样。”

有没有办法针对我的“非典型”用例进行配置?或者是否有更好的方法来模拟从具有不同时滞的不同从站读取数据?

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

com.mongodb.MongoException: Could not find any valid secondaries with the supplied tags ('{ "delayed" : "true"}'

显然 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
}
]
})

最佳答案

据我所知,这是不可能的。例如,您唯一的途径是通过代理模拟/强制您的主要和延迟的次要之间的实际网络延迟。有许多此类工具可用,它们将为您提供更准确的测试。

关于mongodb - 如何设置不隐藏的mongodb延迟slave?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com