연결 풀 모니터링
이 페이지의 내용
개요
이 가이드에서는 Rust 드라이버를 사용하여 드라이버의 연결 풀을 모니터링하는 방법을 보여줍니다. 연결 풀은 드라이버가 MongoDB 인스턴스를 사용해 유지 관리하는 개방형 전송 제어 프로토콜(TCP) 연결의 집합입니다. 연결 풀은 애플리케이션이 생성해야 하는 새로운 연결 수를 줄이는 데 도움이 되므로 애플리케이션이 더 빠르게 실행될 수 있습니다.
애플리케이션에서 연결 풀의 변경 사항에 대한 정보를 사용하거나 연결 풀을 모니터링하여 드라이버가 연결을 사용하는 방식에 대해 자세히 알아볼 수 있습니다.
이 가이드에는 다음 섹션이 포함되어 있습니다.
이벤트 설명
다음 연결 풀 이벤트를 모니터 할 수 있습니다.
이벤트 이름 | 설명 |
---|---|
연결 풀이 생성될 때 생성됩니다. | |
연결 풀이 준비되면 생성됩니다. | |
연결 풀이 비워질 때 생성됩니다. | |
서버 인스턴스가 삭제되기 전에 연결 풀이 닫힐 때 생성됩니다. | |
연결이 생성될 때 생성되지만 작업에 사용될 때 반드시 생성되지는 않습니다. | |
연결이 핸드셰이크를 성공적으로 완료하고 작업에 사용할 준비가 된 후에 생성됩니다. | |
연결이 닫힐 때 생성됩니다. | |
작업이 실행을 위해 연결을 획득하려고 시도할 때 생성됩니다. | |
작업이 실행할 연결을 획득할 수 없을 때 생성됩니다. | |
작업이 실행을 위한 연결을 성공적으로 획득할 때 생성됩니다. | |
작업이 실행된 후 연결이 풀에 다시 체크인될 때 생성됩니다. |
이벤트 모니터링 예시
EventHandler
인스턴스 를 cmap_event_handler
클라이언트 옵션의 값으로 할당하여 연결 풀 이벤트를 모니터 할 수 있습니다. 모든 연결 풀 이벤트를 처리하는 EventHandler
을 구성하려면 callback()
또는 async_callback()
메서드를 사용합니다.
다음 예시 에서는 MongoDB deployment 에 연결하여 연결 풀 이벤트를 모니터 하도록 클라이언트 에 지시하고 각 이벤트 를 출력합니다.
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.cmap_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
이벤트 문서 예시
다음 섹션에서는 각 유형의 연결 풀 모니터링 이벤트에 대한 샘플 출력을 보여줍니다.
PoolCreatedEvent
PoolCreatedEvent { address: ..., options: {...} }
풀 준비 이벤트
PoolReadyEvent { address: ... }
풀 지우기 이벤트
PoolClearedEvent { address: ..., service_id: ..., }
PoolClosedEvent
PoolClosedEvent { address: ... }
ConnectionCreatedEvent
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 문서를 참조하세요.