シャードされたレプリカ セットを持つシャード クラスターがあり、アプリケーション レイヤーは mongos と通信しています。プライマリ サーバーがダウンすると、php アプリケーションがエラーをスローします。これは、次のようなことを行ってドライバーから
有効にしていないためです。setSlaveOkay
MongoCursor::$slaveOkay = true;
これに関する問題は、db と話しているときはいつでも、このステートメントを追加する必要があることです。
システムレベルでこれを有効にする方法はありますか?
プライマリとセカンダリの両方でやってみrs.slaveok()
ましたが、それでもアプリケーション層がエラーをスローしています。
私もdb.getMongo().setSlaveOk()
mongosコンソールで試しました
エラーステートメントは次のとおりです。
PHP Fatal error: Uncaught exception 'MongoCursorException' with message 'dbclient error communicating with server: testserver:10001'