Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

接続プールの概要

項目一覧

  • 接続プールとは?
  • 接続プールの作成と使用
  • シャーディングされたクラスターの接続プーリング
  • 接続プールの構成設定

このドキュメントでは、接続プールを使用してアプリケーションと MongoDB インスタンスの間の接続を管理する方法について説明します。

接続プールとはオープンですぐに使用できるデータベース接続のキャッシュであり、ドライバーによって維持されます。アプリケーションはこのプールからシームレスに接続を取得し、操作を実行して、プールに接続を戻すことができます。接続プールにはスレッドセーフという特徴があります。

接続プールは、アプリケーションのレイテンシと新しい接続が作成される回数を削減するのに役立ちます。

接続プールは、スタートアップ時に接続を作成します。アプリケーションは接続を手動でプールに返す必要はありません。代わりに、接続は自動的にプールに戻ります。

アクティブな接続と、一部非アクティブでも利用可能な接続があります。アプリケーションで接続をリクエストし、プールに利用可能な接続がある場合は、新しい接続を作成する必要はありません。

ほとんどのドライバーMongoClient 型のオブジェクトを提供します。

アプリケーションが多数の個別のクラスターに接続している場合を除き、アプリケーションごとに 1 つの MongoClient インスタンスを使用します。各 MongoClient インスタンスは、MongoClient の作成時に指定された MongoDB クラスターまたはノードに対する自分の接続プールを管理します。MongoClient オブジェクトはほとんどのドライバーでスレッドセーフです。

注意

MongoClient インスタンスを、アプリケーションからグローバルにアクセスできる場所にストアします。

LDAP で接続プールを使用するには、「 LDAP 接続プールの動作 」を参照してください。

mongos ルーターには、クラスター内の各ノードに対する接続プールがあります。シャーディングされたクラスター内の個々のノードへの接続の可用性は、レイテンシに影響します。操作は、接続が確立されるまで待つ必要があります。

接続プールの設定は、次のロケーションに指定できます。

  • MongoDB URI

  • アプリケーションの MongoClient インスタンス

  • アプリケーション フレームワークの構成ファイル

設定
説明

ほとんどのドライバーは、デフォルトで、タイムアウトしない設定になっています。Java ドライバーの一部のバージョン(たとえば、3.7)では、デフォルトで 10 です。

デフォルト: 0 (ほとんどのドライバーが対象)。ドライバーのドキュメントを参照してください。

プールが同時に確立できる接続の最大数。

maxConnectingRust ドライバー除くすべてのドライバーでサポートされます。

maxConnecting の値を上げることで、クライアントはサーバーへの接続をより早く確立できますが、接続ストームのリスクが高くなります。maxConnecting の値が低すぎると、接続プールで過剰なスロットリングが発生し、クライアントが接続を取得する際の待機時間が増加する可能性があります。

デフォルト: 2

このオプションはすべてのドライバーでサポートされているわけではありません。

デフォルト: ドライバーのドキュメントを参照してください。

プールで開始されている接続の最大数。接続プールの最大接続数に達すると、新しい接続は waitQueueTimeoutMS の値まで待機します。

デフォルト: 100

プールで開始されている接続の最小数。minPoolSize の値は、maxPoolSize の値より小さくなければなりません。

デフォルト: 0

各 TaskExecutor 接続プールが特定の mongod インスタンスに対して開始できるアウトバウンド接続の最大数。

デフォルト: 2 64 - 1

パラメータはシャーディングされた配置にのみ適用されます。

各 TaskExecutor 接続プールが構成サーバーに対して開始できるアウトバウンド接続の最大数を設定するための ShardingTaskExecutorPoolMaxSize の任意の上書きです。

設定値:

  • -1ShardingTaskExecutorPoolMaxSize が使用されます。これがデフォルトです。

  • -1 より大きい整数値の場合、各 TaskExecutor 接続プールが構成サーバーに対し開始できるアウトバウンド接続の最大数を上書きします。

パラメータはシャーディングされた配置にのみ適用されます。

デフォルト: -1

バージョン 6.0 で追加。

各 TaskExecutor 接続プールが任意の mongod インスタンスに対して開くことができるアウトバウンド接続の最小数。

デフォルト: 1

パラメータはシャーディングされた配置にのみ適用されます。

各 TaskExecutor 接続プールが構成サーバーに対して開始できるアウトバウンド接続の最小数を設定するための ShardingTaskExecutorPoolMinSize の任意の上書きです。

設定値:

  • -1ShardingTaskExecutorPoolMinSize が使用されます。これがデフォルトです。

  • -1 より大きい整数値の場合、各 TaskExecutor 接続プールが構成サーバーに対し開始できるアウトバウンド接続の最小数を上書きします。

パラメータはシャーディングされた配置にのみ適用されます。

デフォルト: -1

バージョン 6.0 で追加。

TCP 接続でタイムアウトするまでの待機時間をミリ秒で表しています。

長時間実行するサーバー操作を防止するメカニズムとして socketTimeoutMS使用しないでください

ソケット タイムアウトの設定が短いと、サーバーが応答する前に操作でエラーが発生する可能性があります。

デフォルト: 0、これはタイムアウトなしを意味します。

接続可能になるまでスレッドが待機できる最大待機時間(ミリ秒)。 値が0の場合、制限がないことを意味します。

デフォルト: 0

戻る

パフォーマンス