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

연결 풀

이 가이드 에서는 Java 운전자 연결 풀을 사용하여 MongoDB deployment 에 대한 연결을 관리 방법과 애플리케이션 에서 연결 풀 설정을 구성하는 방법에 대해 학습 합니다.

연결 풀 Java 운전자 에 의해 유지 관리되는 개방형 데이터베이스 연결의 캐시 입니다. 애플리케이션 MongoDB 연결을 요청하면 Java 운전자 풀에서 원활하게 연결을 가져오고, 작업을 수행하고, 재사용을 위해 연결을 풀에 반환합니다.

연결 풀은 애플리케이션 지연 시간 줄이고 Java 운전자 에서 새 연결을 생성하는 횟수를 줄이는 데 도움이 됩니다.

모든 MongoClient 인스턴스에는 MongoDB 토폴로지의 각 서버에 대한 기본 제공 연결 풀이 있습니다. 연결 풀은 필요에 따라 소켓을 열어 멀티스레드 애플리케이션에서 동시 MongoDB 작업을 지원합니다.

maxPoolSize 옵션은 각 연결 풀 의 최대 크기를 설정하며, 기본값은 100입니다. 서버 에 대한 사용 중인 연결 수가 maxPoolSize 값에 도달하면 해당 서버 에 대한 다음 요청 연결을 사용할 수 있을 때까지 대기합니다.

MongoClient 인스턴스 서버의 상태 모니터링 위해 MongoDB 토폴로지 에서 서버 당 두 개의 소켓을 더 엽니다.

연결 문자열 사용하거나 MongoClientSettings 객체 MongoClients.create() 메서드에 전달하여 연결 풀 에 대한 설정을 지정할 수 있습니다.

Connection String 또는 MongoClientSettings 탭 선택하여 해당 구문을 확인합니다.

다음은 연결 풀 구성하는 데 사용할 수 있는 연결 문자열 설정입니다.

설정
설명

maxConnecting

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

기본값입니다: 2

maxIdleTimeMS

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

기본값입니다: 0

maxPoolSize

풀에서 열린 최대 연결 수입니다. 연결 풀 maxPoolSize 연결이 열려 있는 동안 작업에 새 연결이 필요한 경우 새 작업은 새 연결이 열릴 때까지 기다립니다. 이 대기 시간을 제한하려면 단일 시간 제한 설정을 사용합니다. 자세한 학습 은 서버 실행 시간 제한 가이드 참조하세요.

기본값입니다: 100

minPoolSize

풀에서 열린 최소 연결 수입니다. minPoolSize 값은 maxPoolSize 값보다 작아야 합니다.

기본값: 0

waitQueueTimeoutMS (사용 중단됨)

이 옵션은 더 이상 사용되지 않습니다. 대신 클라이언트 수준 시간 제한을 설정하여 이 시간 제한을 구성할 수 있습니다.

연결이 가능해질 때까지 작업이 기다릴 수 있는 최대 대기 시간(밀리초)입니다. 0 값은 제한이 없음을 의미합니다.

기본값: 120000(120초)

maxLifeTimeMS

Java 드라이버가 연결이 닫히기 전에 풀링된 연결을 계속 사용할 최대 시간(밀리초)을 지정합니다. 0 값은 드라이버가 풀링된 연결을 열린 상태로 유지할 수 있는 기간에 상한이 없도록 합니다.

기본값: 0

다음 코드는 최대 연결 풀 크기가 50인 클라이언트 생성합니다.

ConnectionString connectionString = "mongodb://<host>:<port>/?maxPoolSize=50"
MongoClient mongoClient = MongoClients.create(connectionString)

이러한 매개변수에 대한 자세한 내용은 ConnectionString API 문서를 참조하세요.

applyToConnectionPoolSettings() 메서드를 체인으로 연결하여 운전자 연결 풀 관리하는 방식을 수정합니다.

다음 표에서는 설정을 연결하여 드라이버 동작을 수정할 수 있는 방법을 설명합니다.

메서드
설명

addConnectionPoolListener()

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

applyConnectionString()

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

applySettings()

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

maintenanceFrequency()

유지 관리 작업 실행 빈도를 설정합니다.

maintenanceInitialDelay()

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

maxConnectionIdleTime()

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

maxConnectionLifeTime()

풀링된 연결이 종료되기 전에 연결이 유지될 수 있는 최대 시간을 설정합니다.

maxSize()

연결과 관련된 최대 연결 수를 설정합니다.
풀.

기본값: 100

maxWaitTime()

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

기본값: 2 minutes

minSize()

연결과 관련된 최소 연결 수를 설정합니다.
풀.

기본값: 0

참고

maxSizeminSize 설정은 드라이버를 연결하는 클러스터의 각 서버에 적용됩니다.

예를 들어 3개의 mongos 서버가 있는 클러스터에 드라이버를 연결한다고 가정합니다. 이는 각 mongos 서버에 대해 최대 maxSize 연결과 최소 minSize 연결이 있을 수 있음을 의미합니다.

다음 예시 에서는 applyToConnectionPoolSettings() 메서드를 체인으로 연결하여 스레드가 사용 가능한 연결을 최대 10 SECONDS 대기하고 연결 풀 의 maxSize 를 200으로 대기하도록 설정하다 .

MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder().applyConnectionString(
new ConnectionString("<your connection string>"))
.applyToConnectionPoolSettings(builder ->
builder.maxSize(50))
.build());

연결 풀 사용에 대한 자세한 내용은 서버 매뉴얼의 연결 풀 문서를 참조하세요.

돌아가기

실행 시간 제한

이 페이지의 내용