0

プライマリ/セカンダリおよび読み取り設定が 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) {
4

1 に答える 1

2

まだ十分に文書化されていませんが、strategyNEARESTを使用する場合はオプションを指定する必要があります。

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, stragegy: 'ping' }
);

http://mongodb.github.com/node-mongodb-native/driver-articles/anintroductionto1_1and2_2.html#read-preferences

于 2013-02-11T19:22:52.650 に答える