テスト目的のために、slaveDelay = nでスレーブを設定することで、mongodbクラスタのレプリケーションラグをシミュレートしようとしています。それが判明すると、これは魔法のようにスレーブを隠してしまい、私のテストはそれにアクセスできなくなります。隠されていないmongodb遅延スレーブを設定するには?
mongodb documentation状態 「一般的に、我々はslaveOkayの読み込みに使用する遅延メンバーをたくないあなたも隠しされているかのようにこのように、slaveDelayを設定することも、アプリケーションからメンバーを隠す:真。」
「非定型」ユースケースを設定する方法はありますか?あるいは、さまざまなタイムラグを持つ異なるスレーブからの読み込みをシミュレートする良い方法がありますか?
私はTaggedReadPreferenceを使用して遅延スレーブに接続するためのテストコードを強制しようとしたが、これは明らかにJavaドライバは、二次見ることができないん
com.mongodb.MongoException: Could not find any valid secondaries with the supplied tags ('{ "delayed" : "true"}'
もたらします。 「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
}
]
})