プライマリ/セカンダリおよび読み取り設定が NEAREST のレプリカ セットがありました。MongoStatを介して、mongod インスタンスと nodejs が実行されているレプリカ セット メンバーにリクエストが送信され、別の aws インスタンスの他のメンバーには送信されないことがわかります。2 つの間で Ping が有効になっていません。読み取り設定を変更することで、他のインスタンスにアクセスできることも確認できます。私のJavaクライアントで正常に動作しています。他のインスタンスは、読み取り共有のために ping できる必要がありますか? SecondaryAcceptableLatencyMS は 500 に設定されています。実行しようとしているサンプル コード スニペットを次に示します。
var replSet = new ReplSetServers( [
new Server( "localhost", 27017, { auto_reconnect: true, native_parser: true, slaveOk: true } ),
new Server( "<replmem1>", 27017, { auto_reconnect: true, native_parser: true, slaveOk: true } ),
new Server( "<replmem2>", 27018, { auto_reconnect: true, native_parser: true, slaveOk: true } )
],
{read_secondary:true, secondaryAcceptableLatencyMS:500 }
);
var dbCon = new Db("emails_" + postParams["campaign_id"], replSet, {safe: true, readPreference: mongo.ReadPreference.NEAREST});
dbCon.open(function(err, db) {