Docs Menu
Docs Home
/ /

接続プール

スタンドアロンのmongocxx::clientは、シングルスレッド アルゴリズムを使用して、接続されているクラスターの状態を監視します。 レプリカセットに接続すると、スレッドは60秒ごとに「 World を停止 」してクラスターのステータスを確認します。 一方、 mongocxx::poolは、クラスター内の各サーバーに対して個別のバックグラウンド スレッドを使用します。各スレッドは、 10秒ごとに監視対象サーバーのステータスをチェックします。 「世界を停止」するのではなく、バックグラウンドでクラスターを監視する方がパフォーマンス上の利点があるため、アプリケーションが複数のスレッドにアクセスする場合は、スタンドアロン クライアントのセットではなく、 mongocxx::poolを使用することを強くお勧めします。は 1 つのスレッドを使用します。

mongocxx::poolは複数のスレッドで共有でき、クライアントの作成に使用できます。 ただし、各mongocxx::clientは 1 つのスレッドでのみ使用できます。 mongocxx::clientをスレッドセーフに使用する方法の詳細については、 スレッドの安全性ドキュメントを参照してください。

mongocxx::pool は親とフォーク間で共有できません。フォーク後に接続プールを作成する必要があります。フォークの安全性に関するドキュメント を参照してください。

接続プール内のクライアント数は URI パラメータ maxPoolSize によって制限されます。mongocxx::pool によって作成されたクライアント(プール内とチェックアウトの両方)によって作成されたクライアントの数が maxPoolSize の値に達すると、mongocxx::pool::acquire は別のスレッドがプールにクライアントを返すまでブロックします。デフォルト値は 100 です。

接続プールを使用するには、まず URI を引数として渡してmongocxx::poolを作成します。 次に、 mongocxx::pool::acquireを呼び出してプールからクライアントを受け取ります。 クライアントは、範囲を超えると自動的にプールに返されます。

詳しくは、 接続プールの例を参照してください。

戻る

Stable API

次へ

AWS Lambda

項目一覧