YCSB でテストしながら MongoDB を使い始めたばかりで、読み取り設定とその実装についていくつか質問があります。
1 つのプライマリ ノードと 2 つのセカンダリ ノードをセットアップし、このように YCSB Java クライアントで読み取り設定を設定しましたmongo.setReadPreference(ReadPreference.secondary());
1. YCSB をプライマリ ノードに接続するように指定しても、エラー メッセージを生成せずに読み取り操作を実行できるのはなぜですか? また、ログを確認したところ、プライマリがこれらのリクエストを処理したノードであることがわかりました。
2クライアントは本番環境のセカンダリ ノードについてどのように認識しますか? デフォルトでクライアントをどこに接続しますか? すべてのクライアントがプライマリに移動し、セカンダリのリストを取得してから、セカンダリに再接続して読み取りを実行しますか?
3ソース コードを参照すると、好みに基づいて適切なレプリカを選択するロジックが で行われreplica_set_monitor.cpp
ていることがわかりました。
ありがとうございました