AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

연결 풀

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

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

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

모든 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 Reactive Streams 운전자 연결을 닫기 전에 풀링된 연결을 계속 사용할 최대 시간(밀리초)을 지정합니다. 0 값은 운전자 풀링된 연결을 열린 상태로 유지할 수 있는 기간에 상한이 없음을 나타냅니다.

기본값: 0

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

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

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

메서드
설명

addConnectionPoolListener()

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

applyConnectionString()

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

applySettings()

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

connectionPoolListenerList()

연결 풀 리스너 목록을 설정합니다.

maintenanceFrequency()

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

maintenanceInitialDelay()

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

maxConnectionIdleTime()

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

maxConnectionLifeTime()

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

maxConnecting()

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

maxSize()

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

기본값: 100

maxWaitTime()

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

기본값: 2 minutes

minSize()

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

기본값: 0

이러한 메서드에 대해 자세히 학습하려면 ConnectionPoolSettings.Builder API 설명서를 참조하세요.

다음 예시 최대 연결 크기가 50 인 연결 풀 생성하는 방법을 보여줍니다.

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

ConnectionString connectionString = new ConnectionString("mongodb://<host>:<port>/?maxPoolSize=50");
try (MongoClient mongoClient = MongoClients.create(connectionString)) {
}
try (MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder().applyConnectionString(
new ConnectionString("<your connection string>"))
.applyToConnectionPoolSettings(builder ->
builder.maxSize(50))
.build())) {

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