Overview
このガイドでは、Rust ドライバーを使用してドライバーの接続プールを監視する方法を説明します。 接続プールは、ドライバーが MongoDB インスタンスと維持するオープン コントロール プロトコル(TCP)接続のセットです。 接続プールを使用すると、アプリケーションで作成する必要がある新しい接続の数が減るため、アプリケーションの実行が高速化される可能性があります。
アプリケーション内の接続プールの変更に関する情報を使用することも、接続プールを監視して、ドライバーが接続を使用する方法の詳細を学習することもできます。
このガイドには、次のセクションが含まれています。
イベントの説明では、ドライバーが生成できる接続プール イベントについて説明します
イベント サブスクリプションの例では、接続プール イベントをサブスクライブする方法を示すサンプル コードを提供します
サンプルイベント ドキュメントでは、各接続プール イベントのサンプルが提供されます
追加情報では、このガイドで言及されている型とメソッドのリソースとAPIドキュメントへのリンクを提供します
イベントの説明
次の接続プール モニタリング イベントの 1 つ以上にサブスクライブできます。
イベント名 | 説明 |
|---|---|
接続プールが作成されたときに作成されます。 | |
接続プールが準備できたときに作成されます。 | |
接続プールがクリアされたときに作成されます。 | |
サーバー インスタンスが破棄される前に、接続プールが閉じられたときに作成されます。 | |
接続が作成されたときに作成されますが、操作に使用される場合は必ずしも作成されません。 | |
接続がハンドシェイクを正常に完了し、操作に使用する準備が整った後に作成されます。 | |
接続が閉じられたときに作成されます。 | |
操作が実行用接続を取得しようとしたときに作成されます。 | |
操作が実行用接続を取得できない場合に作成されます。 | |
操作が実行用接続を正常に取得したときに作成されます。 | |
操作が実行された後に接続がプールにチェックバックされたときに作成されます。 |
イベント サブスクリプションの例
アプリケーション内でサブスクライブすることで、1 つ以上の接続プール イベントにアクセスできます。 次の例では MongoDB 配置に接続し、 ConnectionCreatedEventイベントタイプにサブスクライブします。
struct ConnectionCreatedHandler; impl CmapEventHandler for ConnectionCreatedHandler { fn handle_connection_created_event(&self, event: ConnectionCreatedEvent) { eprintln!("Connection created: {:?}", event); } } let handler: Arc<dyn CmapEventHandler> = Arc::new(ConnectionCreatedHandler); client_options.cmap_event_handler = Some(handler); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
イベント ドキュメントの例
次のセクションでは、接続プールを監視するイベントの各タイプのサンプル出力を示します。
PoolCreateEvent
PoolCreatedEvent { address: ..., options: {...} }
PoolReadyEvent
PoolReadyEvent { address: ... }
PoolClearedEvent
PoolClearedEvent { address: ..., service_id: ..., }
PoolClosedEvent
PoolClosedEvent { address: ... }
ConnectionCreateEvent
ConnectionCreatedEvent { address: ..., connection_id: 1 }
ConnectionReadyEvent
ConnectionReadyEvent { address: ..., connection_id: 1 }
ConnectionClosedEvent
ConnectionClosedEvent { address: ..., connection_id: 1, reason: ..., /* private fields */ }
ConnectionCheckOutStartedEvent
ConnectionCheckOutStartedEvent { address: ..., }
ConnectionCheckoutFailedEvent
ConnectionCheckOutFailedEvent { address: ..., reason: ..., /* private fields */ }
ConnectionCheckedOutEvent
ConnectionCheckedOutEvent { address: ..., connection_id: 1 }
ConnectionCheckedInEvent
ConnectionCheckedInEvent { address: ..., connection_id: 1 }
詳細情報
MongoDB 配置のモニタリングの詳細については、「 MongoDB をモニタリングする方法 」に関する記事を参照してください。
MongoDB への接続の詳細については、「 接続ガイド 」を参照してください。
アプリケーションのパフォーマンス向上の詳細については、パフォーマンスに関する考慮事項 のガイドを参照してください。
API ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。