개요
이 가이드 에서는 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 탭 선택하여 해당 구문을 확인합니다.
다음은 연결 풀 구성하는 데 사용할 수 있는 연결 문자열 설정입니다.
설정 | 설명 |
|---|---|
| 풀이 동시에 설정할 수 있는 최대 연결 수입니다. 기본값입니다: |
| 연결이 제거되고 닫히기 전에 풀에서 유휴 상태로 유지될 수 있는 최대 시간(밀리초)입니다. 예기치 않은 연결 끊김을 방지하려면 이 값을 애플리케이션의 예상 유휴 기간보다 높게 설정하고 방화벽 또는 프록시 연결 시간 초과보다 낮게 설정합니다. 기본값입니다: |
| 풀에서 열 수 있는 최대 연결 수입니다. 연결 풀 기본값입니다: |
| 풀에서 열린 최소 연결 수입니다. 기본값: |
| 이 옵션은 더 이상 사용되지 않습니다. 대신 클라이언트 수준 시간 제한을 설정하여 이 시간 제한을 구성할 수 있습니다. 연결이 가능해질 때까지 작업이 기다릴 수 있는 최대 대기 시간(밀리초)입니다. 기본값: |
| Java Reactive Streams 운전자 연결을 닫기 전에 풀링된 연결을 계속 사용할 최대 시간(밀리초)을 지정합니다. 기본값: |
이러한 매개변수에 대한 자세한 내용은 ConnectionString API 설명서를 참조하세요.
applyToConnectionPoolSettings() 메서드를 체인으로 연결하여 운전자 연결 풀 관리하는 방식을 수정합니다.
다음 표에서는 설정을 연결하여 드라이버 동작을 수정할 수 있는 방법을 설명합니다.
메서드 | 설명 |
|---|---|
| 연결 풀 관련 이벤트에 대한 리스너를 추가합니다. |
|
|
|
|
| 연결 풀 리스너 목록을 설정합니다. |
| 유지 관리 작업 실행 빈도를 설정합니다. |
| 첫 번째 유지 관리 작업을 실행하기 전에 대기할 시간을 설정합니다. |
| 연결이 닫히기 전에 유휴 상태를 지속할 수 있는 최대 시간을 설정합니다. |
| 풀링된 연결이 종료되기 전에 연결이 유지될 수 있는 최대 시간을 설정합니다. |
| 풀이 동시에 설정할 수 있는 최대 연결 수를 설정합니다. |
| 연결 풀과 연결된 최대 연결 수를 설정합니다. 기본값: |
| 사용 가능한 연결을 기다리는 최대 시간을 설정합니다. 기본값: |
| 연결 풀과 연결된 최소 연결 수를 설정합니다. 기본값: |
이러한 메서드에 대해 자세히 학습하려면 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())) {
추가 정보
연결 풀 사용에 대한 자세한 내용은 서버 매뉴얼의 연결 풀 문서를 참조하세요.