3

Java アプリケーションから MongoDB レプリカ セットに接続するためのクライアント URI を指定するときに、MongoDB 接続文字列のreplicaSetオプションの使用/必要性について混乱しています。

レプリカ セットを構成する MongoDB の 3 つのノード インスタンスが実行されており、それぞれが同じレプリカ セットのメンバーとして指定されています。Java アプリケーションからレプリカ セットに接続したいと考えています。2 つ以上のホスト名のリストを提供するときに、接続文字列でレプリカ セット名を指定する必要さえある場合、私が読んだドキュメントから混乱しています。

3 ノードの MongoDB インスタンスを開始する方法は次のとおりです。

  1. Server1$: mongod --replSet " rs0 "
  2. Server2$: mongod --replSet " rs0 "
  3. Server3$: mongod --replSet " rs0 "

その後、交渉が行われ、プライマリが選出され、残りがセカンダリとしてマークされると仮定します。

次に、Java アプリケーションから MongoClient 呼び出しを介してレプリカ セットに接続します。実際のレプリカ セット名も必要ですか? また、レプリカ セットの各メンバーを一覧表示する必要がありますか?それとも、MongoDB ドライバーがレプリカ セットの 1 つのメンバーだけで残りを判断する必要がありますか?

MongoClient mongoClient = new MongoClient(
  new MongoClientURI(
    "mongodb://Server1,Server2,Server3/?replicaSet=rs0"
  )
);

replicaSet オプションは必要ですか?

4

1 に答える 1