개요
이 가이드 에서는 Java 운전자 연결 풀을 사용하여 MongoDB deployment 에 대한 연결을 관리 방법과 애플리케이션 에서 연결 풀 설정을 구성하는 방법에 대해 학습 합니다.
연결 풀 Java 운전자 에 의해 유지 관리되는 개방형 데이터베이스 연결의 캐시 입니다. 애플리케이션 MongoDB 연결을 요청하면 Java 운전자 풀에서 원활하게 연결을 가져오고, 작업을 수행하고, 재사용을 위해 연결을 풀에 반환합니다.
연결 풀은 애플리케이션 지연 시간 줄이고 Java 운전자 에서 새 연결을 생성하는 횟수를 줄이는 데 도움이 됩니다.
연결 풀 만들기
모든 MongoClient
인스턴스에는 MongoDB 토폴로지의 각 서버에 대한 기본 제공 연결 풀이 있습니다. 연결 풀은 필요에 따라 소켓을 열어 멀티스레드 애플리케이션에서 동시 MongoDB 작업을 지원합니다.
maxPoolSize
옵션은 각 연결 풀 의 최대 크기를 설정하며, 기본값은 100입니다. 서버 에 대한 사용 중인 연결 수가 maxPoolSize
값에 도달하면 해당 서버 에 대한 다음 요청 연결을 사용할 수 있을 때까지 대기합니다.
각 MongoClient
인스턴스 서버의 상태 모니터링 위해 MongoDB 토폴로지 에서 서버 당 두 개의 소켓을 더 엽니다.
연결 풀 구성
연결 문자열 사용하거나 MongoClientSettings
객체 MongoClients.create()
메서드에 전달하여 연결 풀 에 대한 설정을 지정할 수 있습니다.
Connection String 또는 MongoClientSettings 탭 선택하여 해당 구문을 확인합니다.
다음은 연결 풀 구성하는 데 사용할 수 있는 연결 문자열 설정입니다.
설정 | 설명 |
---|---|
| 풀이 동시에 설정할 수 있는 최대 연결 수입니다. 기본값입니다: |
| 연결이 제거되거나 닫히기 전에 풀에서 유휴 상태로 유지될 수 있는 최대 시간(밀리초)입니다. 기본값입니다: |
| 풀에서 열린 최대 연결 수입니다. 연결 풀 기본값입니다: |
| 풀에서 열린 최소 연결 수입니다. 기본값: |
| 이 옵션은 더 이상 사용되지 않습니다. 대신 클라이언트 수준 시간 제한을 설정하여 이 시간 제한을 구성할 수 있습니다. 연결이 가능해질 때까지 작업이 기다릴 수 있는 최대 대기 시간(밀리초)입니다. 기본값: |
| Java 드라이버가 연결이 닫히기 전에 풀링된 연결을 계속 사용할 최대 시간(밀리초)을 지정합니다. 기본값: |
다음 코드는 최대 연결 풀 크기가 50
인 클라이언트 생성합니다.
ConnectionString connectionString = "mongodb://<host>:<port>/?maxPoolSize=50" MongoClient mongoClient = MongoClients.create(connectionString)
이러한 매개변수에 대한 자세한 내용은 ConnectionString API 문서를 참조하세요.
applyToConnectionPoolSettings() 메서드를 체인으로 연결하여 운전자 연결 풀 관리하는 방식을 수정합니다.
다음 표에서는 설정을 연결하여 드라이버 동작을 수정할 수 있는 방법을 설명합니다.
메서드 | 설명 |
---|---|
| 연결 풀 관련 이벤트에 대한 리스너를 추가합니다. |
|
|
|
|
| 유지 관리 작업 실행 빈도를 설정합니다. |
| 첫 번째 유지 관리 작업을 실행하기 전에 대기할 시간을 설정합니다. |
| 연결이 닫히기 전에 유휴 상태를 지속할 수 있는 최대 시간을 설정합니다. |
| 풀링된 연결이 종료되기 전에 연결이 유지될 수 있는 최대 시간을 설정합니다. |
|
기본값: |
| 사용 가능한 연결을 기다리는 최대 시간을 설정합니다. 기본값: |
|
기본값: |
참고
이 maxSize
및 minSize
설정은 드라이버를 연결하는 클러스터의 각 서버에 적용됩니다.
예를 들어 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());
추가 정보
연결 풀 사용에 대한 자세한 내용은 서버 매뉴얼의 연결 풀 문서를 참조하세요.