Overview
このガイドでは、 Javaドライバーがクラスターを管理する方法について学習できます。
クラスターの 設定を指定するには、接続文字列を使用するか、MongoClientSettingsオブジェクトをMongoClientコンストラクターに渡します。使用可能なオプションを確認するには、Connection
String タブまたは MongoClientSettingsタブを選択します。
MongoDBクラスターを操作するときのドライバーの動作を変更するには、接続文字列に次のパラメーターを含めます。
オプション名 | タイプ | 説明 |
|---|---|---|
| integer | ドライバーが例外をスローする前に、サーバー選択が成功するまで待機する最大時間をミリ秒単位で指定します。 デフォルト: |
| integer | レプリカセット内のMongoDBの複数のインスタンスと通信する場合、ドライバーは、応答時間が最も短いサーバーとローカルしきい値(ミリ秒単位)以下のサーバーにのみリクエストを送信します。 デフォルト: |
| string | 提供された接続stringに複数のホストを含めることを指定します。 指定すると、ドライバーはそのセットのすべてのメンバーを検索しようとします。 デフォルト: |
| ブール値 | ドライバーがホストに直接接続する必要があることを指定します。これは デフォルト: |
| ブール値 | ドライバーが ロードバランサーを使用してMongoDBに接続しているかどうかを指定します。 デフォルト: |
| string | シードリストを構築するためにドライバーが取得する SRVリソースレコードのサービス名を指定します。このオプションを使用するには、接続 URI で DNS シード リスト接続形式 を使用する必要があります。 デフォルト: |
| string | SRVレコードのルックアップによって返されたホスト名を検証するためにドライバーが使用するドメインサフィックスを指定します。このオプションを設定すると、ドライバーはSRVホスト名から推論されたドメインではなく、指定されたサフィックスに対してホスト名を検証します。値がピリオド( このオプションは、 デフォルト: |
この例では、構成されているMongoDBクラスターのタイプに関係なく、サーバーにドライバーを直接接続します。
ConnectionString connectionString = "mongodb://<host>:<port>/?directConnection=true"MongoClient mongoClient = MongoClients.create(connectionString)警告
デフォルトのSRVホスト名の検証を変更すると、DNSスプーフィングに対する組み込みの保護機能が緩和されるため、セキュリティの脆弱性が生じる可能性があります。配置内のホストするをカバーする最も狭いサフィックスを指定します。例として、SRVホスト名がcluster.test.internal.example.comの場合は、srvAllowedHostsSuffixを.internal.example.comに設定します。example.comドメイン内の任意のホストを受け入れる.example.comには設定しないでください。
これらのパラメーターの詳細については、ConnectionString APIドキュメント を参照してください。
MongoDBクラスターを操作するときのドライバーの動作を変更するには、applyToClusterSettings() メソッドをチェーンします。
次の表では、 設定に連鎖させてドライバーの動作を変更できる方法について説明します。
方式 | 説明 |
|---|---|
| クラスター関連のイベントのリスナーを追加します。 |
|
|
|
|
| mongo配置のすべての指定された場所を設定します。 |
| サーバーのラウンドトリップにかかる時間を設定し、かつサーバー選択の対象となる時間を設定します。 デフォルト: |
| MongoDB 配置に接続する方法を設定します。 |
| クラスターに必要なクラスターのタイプを設定します。 |
| クラスターに必要なレプリカセット名を設定します。 |
| タイムアウト例外をスローする前に、プライマリ ノードを選択する最大時間を設定します。 デフォルト: |
| サーバーの選択の前に適用するサーバー セレクターを追加します。 |
| SRV DNS レコードを検索して MongoDB ホストを検索するために使用するホスト名を設定します。 ホストに関連付けられた TXT レコードの処理を有効にする場合は、 以下に例を挙げます。 |
|
SRV 接続プロトコルを使用していない場合は、 が例外をスローします。 |
| SRVレコードのルックアップによって返されたホストする名を検証するためにドライバーが使用するドメインサフィックスを設定します。SRVホストする名から推論されたドメインの代わりに使用されます。値がピリオド( |
この例では、構成されているMongoDBクラスターのタイプに関係なく、サーバーにドライバーを直接接続します。
MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder() .applyToClusterSettings(builder -> builder.mode(ClusterConnectionMode.SINGLE)) .build());Tip
これは、接続 URI で指定できる directConnection パラメータと同様です。詳細については、「 接続文字列」タブを参照してください。
警告
デフォルトのSRVホスト名の検証を変更すると、DNSスプーフィングに対する組み込みの保護機能が緩和されるため、セキュリティの脆弱性が生じる可能性があります。配置内のホストするをカバーする最も狭いサフィックスを指定します。例として、SRVホスト名がcluster.test.internal.example.comの場合、srvAllowedHostsSuffix()に".internal.example.com"を渡します。example.comドメイン内の任意のホストを受け入れる".example.com"は渡さないでください。
連鎖メソッドの詳細については、MongoClientSettings.Builder APIドキュメント を参照してください。