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

연결 풀

이 가이드에서는 Java Reactive Streams 드라이버가 연결 풀을 사용하여 MongoDB 배포서버에 대한 연결을 관리하는 방법과 애플리케이션에서 연결 풀 설정을 구성하는 방법에 대해 학습할 수 있습니다.

연결 풀은 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())) {

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