接続文字列に 2 つのサーバーを含むレプリカセットがあり、secondaryPreferred があります。セカンダリ サーバーのダウンタイムの場合、MongoDB がプライマリに自動的に接続するようにします。これは「通常の」ダウンタイムのケースではうまく機能しますが、MongoClient は常に両方のレプリカセット メンバーに接続しているようです。最初のセカンダリに最初に接続する場合でも、更新クエリにのみ必要なプライマリにも接続します。
問題は、プライマリに接続タイムアウトがある場合です。Web サイトは、セカンダリからサービスを提供し続ける前に、60 秒間接続を試みます。また、無駄なオーバーヘッドのようです。
私はそれをテストしませんでしたが、primaryPreferred と同じだと思います。
この動作を変更することは可能ですか?
構成:
PHP MongoClient 1.5.7
Connection string: mongodb://192.168.1.24:27017,192.168.1.25:27017'
Parameters:
readPreference: secondaryPreferred
replicaSet: dnm
Servers: primary, secondary, arbiter