개요
이 가이드 에서는 코틀린 동기 (Kotlin Sync) 운전자 연결 풀을 사용하여 MongoDB deployment 에 대한 연결을 관리 방법에 대해 학습 수 있습니다. 애플리케이션 에서 연결 풀 설정을 지정하여 이 동작을 구성할 수 있습니다.
연결 풀 코틀린 동기 (Kotlin Sync) 운전자 에서 유지 관리하는 개방형 데이터베이스 연결의 캐시 입니다. 애플리케이션 MongoDB 에 대한 연결을 요청하면 운전자 풀에서 연결을 검색하고 작업을 수행한 다음 재사용을 위해 풀에 반환합니다.
연결 풀은 애플리케이션 지연 시간 줄이고 운전자 새 연결을 생성하는 횟수를 줄이는 데 도움이 됩니다.
연결 풀 만들기
각 MongoClient
인스턴스 에는 MongoDB 토폴로지 의 각 서버 에 대한 내장 연결 풀 있습니다. minPoolSize
옵션을 구성하지 않으면 연결 풀이 필요에 따라 소켓을 엽니다. 이러한 소켓은 애플리케이션 에서 동시 MongoDB 작업을 지원 .
새 MongoClient
를 인스턴스화하면 클라이언트 MongoDB 토폴로지 에서 서버 당 두 개의 소켓을 열어 서버의 상태 모니터 .
예시 들어, 3노드 복제본 세트 에 연결된 클라이언트 6개의 모니터링 소켓을 엽니다. 애플리케이션 maxPoolSize
기본값 설정을 사용하고 프라이머리 노드 만 쿼리하는 경우 연결 풀 에는 최대 106
개의 열린 소켓과 100
개의 연결이 있을 수 있습니다. 애플리케이션 읽기 설정 (read preference) 사용하여 세컨더리 노드를 쿼리 경우 총 연결 수가 306
개가 될 수 있습니다.
효율성 위해 각 프로세스 에 대해 한 번씩 클라이언트 만들고 모든 작업에 재사용합니다. 각 요청 에 대해 새 클라이언트 를 만들면 지연 시간 증가하므로 피합니다.
연결 풀 구성
연결 문자열 또는 MongoClientSettings
객체 사용하여 연결 풀 에 대한 설정을 지정할 수 있습니다.
Connection String 또는 MongoClientSettings 탭 선택하여 해당 구문을 확인합니다.
다음 표에서는 연결 문자열 에서 설정하다 수 있는 연결 풀 옵션에 대해 설명합니다.
옵션 | 설명 |
---|---|
| 풀이 동시에 설정할 수 있는 최대 연결 수를 설정합니다. 기본값입니다: |
| 연결이 제거되고 닫히기 전에 풀에서 유휴 상태로 유지될 수 있는 최대 시간(밀리초)을 설정합니다. 기본값입니다: |
| 풀에서 열 수 있는 최대 연결 수를 설정합니다. 연결 풀 에 열려 있는 최대 연결 수가 있는 동안 작업에 새 연결이 필요한 경우 작업은 새 연결이 열릴 때까지 기다립니다. 기본값입니다: |
| 풀에서 열 수 있는 최소 연결 수를 설정합니다. 기본값: |
| 운전자 연결을 닫기 전에 풀링된 연결을 계속 사용할 수 있는 최대 시간(밀리초)을 설정합니다. 기본값: |
이러한 옵션에 대해 자세히 학습 ConnectionString API 설명서를 참조하세요.
MongoClientSettings
객체 에서 연결 풀 설정을 지정하려면 applyToConnectionPoolSettings()
메서드를 MongoClientSettings
빌더에 연결합니다. ConnectionPoolSettings.Builder
차단 applyToConnectionPoolSettings()
메서드에 매개변수로 전달합니다.
다음 표에서는 ConnectionPoolSettings.Builder
차단 에서 연결 풀 구성하는 데 사용할 수 있는 setter 메서드에 대해 설명합니다.
메서드 | 설명 |
---|---|
| 연결 풀 관련 이벤트에 대한 리스너를 추가합니다. |
|
|
|
|
| 연결 풀 관리 작업 실행 빈도를 설정합니다. |
| 연결 풀 에서 첫 번째 유지 관리 작업 실행 전에 대기할 시간을 설정합니다. |
| 연결이 닫히기 전에 유휴 상태를 지속할 수 있는 최대 시간을 설정합니다. |
| 풀링된 연결이 닫히기 전에 열릴 수 있는 최대 시간을 설정합니다. |
| 풀에서 열 수 있는 최대 연결 수를 설정합니다. 기본값: |
| 사용 가능한 연결을 기다리는 최대 시간을 설정합니다. 기본값: |
| 풀에서 열 수 있는 최소 연결 수를 설정합니다. 기본값: |
이러한 메서드에 대한 자세한 학습 은 ConnectionPoolSettings.Builder API 설명서를 참조하세요.
예시
다음 예시 최대 연결 크기가 50
인 연결 풀 생성하는 방법을 보여줍니다.
Connection String 또는 MongoClientSettings 탭 선택하여 해당 구문을 확인합니다.
val uri = "mongodb://<host>:<port>/?maxPoolSize=50" val client = MongoClient.create(uri)
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("mongodb://<host>:<port>/")) .applyToConnectionPoolSettings { builder -> builder.maxSize(50) } .build() )
추가 정보
연결 풀 사용에 대해 자세히 학습하려면 MongoDB Server 매뉴얼의 연결 풀 개요 를 참조하세요.