Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Kotlin Sync 드라이버
/ /

연결 풀

이 가이드 에서는 코틀린 동기 (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 탭 선택하여 해당 구문을 확인합니다.

다음 표에서는 연결 문자열 에서 설정하다 수 있는 연결 풀 옵션에 대해 설명합니다.

옵션
설명

maxConnecting

풀이 동시에 설정할 수 있는 최대 연결 수를 설정합니다.

기본값입니다: 2

maxIdleTimeMS

연결이 제거되고 닫히기 전에 풀에서 유휴 상태로 유지될 수 있는 최대 시간(밀리초)을 설정합니다.

기본값입니다: 0

maxPoolSize

풀에서 열 수 있는 최대 연결 수를 설정합니다. 연결 풀 에 열려 있는 최대 연결 수가 있는 동안 작업에 새 연결이 필요한 경우 작업은 새 연결이 열릴 때까지 기다립니다.

기본값입니다: 100

minPoolSize

풀에서 열 수 있는 최소 연결 수를 설정합니다. minPoolSize 값은 maxPoolSize 값보다 작아야 합니다.

기본값: 0

maxLifeTimeMS

운전자 연결을 닫기 전에 풀링된 연결을 계속 사용할 수 있는 최대 시간(밀리초)을 설정합니다. 0 값은 운전자 풀링된 연결을 열린 상태로 유지할 수 있는 기간에 상한이 없음을 나타냅니다.

기본값: 0

이러한 옵션에 대해 자세히 학습 ConnectionString API 설명서를 참조하세요.

MongoClientSettings 객체 에서 연결 풀 설정을 지정하려면 applyToConnectionPoolSettings() 메서드를 MongoClientSettings 빌더에 연결합니다. ConnectionPoolSettings.Builder 차단 applyToConnectionPoolSettings() 메서드에 매개변수로 전달합니다.

다음 표에서는 ConnectionPoolSettings.Builder 차단 에서 연결 풀 구성하는 데 사용할 수 있는 setter 메서드에 대해 설명합니다.

메서드
설명

addConnectionPoolListener()

연결 풀 관련 이벤트에 대한 리스너를 추가합니다.

applyConnectionString()

ConnectionString 객체 의 설정을 적용합니다.

applySettings()

ConnectionPoolSettings 객체에 지정된 연결 풀 설정을 사용합니다.

maintenanceFrequency()

연결 풀 관리 작업 실행 빈도를 설정합니다.

maintenanceInitialDelay()

연결 풀 에서 첫 번째 유지 관리 작업 실행 전에 대기할 시간을 설정합니다.

maxConnectionIdleTime()

연결이 닫히기 전에 유휴 상태를 지속할 수 있는 최대 시간을 설정합니다.

maxConnectionLifeTime()

풀링된 연결이 닫히기 전에 열릴 수 있는 최대 시간을 설정합니다.

maxSize()

풀에서 열 수 있는 최대 연결 수를 설정합니다.

기본값: 100

maxWaitTime()

사용 가능한 연결을 기다리는 최대 시간을 설정합니다.

기본값: 2

minSize()

풀에서 열 수 있는 최소 연결 수를 설정합니다.

기본값: 0

이러한 메서드에 대한 자세한 학습 은 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 매뉴얼의 연결 풀 개요 를 참조하세요.

돌아가기

MongoDB Server 실행 시간 제한

다음

AWS Lambda

이 페이지의 내용