문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

연결 풀 개요

이 페이지의 내용

  • 연결 풀이란 무엇입니까?
  • 연결 풀 만들기 및 사용
  • 샤드 클러스터 연결 풀링
  • 연결 풀 구성 설정

이 문서에서는 연결 풀을 사용하여 애플리케이션과 MongoDB 인스턴스 간의 연결을 관리하는 방법을 설명합니다.

연결 풀드라이버 에 의해 유지 관리되는 바로 사용할 수 있는 개방형 데이터베이스 연결의 캐시입니다. 애플리케이션은 풀에서 원활하게 연결을 가져오고, 작업을 수행하고, 연결을 풀로 다시 반환할 수 있습니다. 연결 풀은 스레드에 안전합니다.

연결 풀은 애플리케이션 지연 시간을 줄이고 새 연결이 생성되는 횟수를 줄이는 데 도움이 됩니다.

연결 풀은 시작 시 연결을 생성합니다. 애플리케이션은 풀의 연결을 수동으로 반환할 필요가 없습니다. 대신 연결은 자동으로 풀로 돌아갑니다.

일부 연결은 활성 상태이고 일부 연결은 비활성 상태이지만 사용할 수 있습니다. 애플리케이션이 연결을 요청하고 풀에 사용할 수 있는 연결이 있는 경우 새 연결을 만들 필요가 없습니다.

대부분의 드라이버MongoClient 유형의 객체를 제공합니다.

애플리케이션이 여러 개의 개별 클러스터에 연결되지 않는 한 애플리케이션당 MongoClient 인스턴스 하나를 사용합니다. 각 MongoClient 인스턴스는 MongoClient가 생성될 때 지정된 MongoDB 클러스터 또는 노드에 대한 자체 연결 풀을 관리합니다. MongoClient 객체는 대부분의 드라이버에서 스레드로부터 안전합니다.

참고

애플리케이션으로 어디서든 액세스할 수 있는 위치에 MongoClient 인스턴스를 저장합니다.

LDAP와 함께 연결 풀을 사용하려면 LDAP 연결 풀 동작을 참조하십시오.

mongos 라우터에는 클러스터의 각 노드에 연결 풀이 있습니다. 샤드 클러스터 내 개별 노드에 대한 연결 가용성은 지연 시간에 영향을 미칩니다. 작업은 연결이 설정될 때까지 기다려야 합니다.

연결 풀을 구성하려면 옵션을 다음과 같이 설정합니다.

  • MongoDB URI를 통해

  • 프로그래밍적으로 MongoClient 인스턴스를 빌드할 때 또는

  • 애플리케이션 프레임워크의 구성 파일에 추가합니다.

설정
설명
maxPoolSize

풀에서 열 수 있는 최대 연결 수입니다. 연결 풀이 최대 연결 수에 도달하면 새 연결은 waitQueueTimeoutMS 값이 될 때까지 대기합니다.

기본값입니다: 100

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

기본값: 0

대부분의 드라이버는 기본적으로 시간 초과가 발생하지 않습니다. Java 드라이버의 일부 버전(예: 버전 3.7)은 기본적으로 10으로 설정되어 있습니다.

기본값입니다: 0 대부분의 드라이버에 해당합니다. 드라이버 설명서를 참조하세요.

TCP 연결에서 시간 초과 전에 대기할 시간(밀리초)입니다.

장기 실행 서버 작업을 방지하는 작업을 방지하는 메커니즘으로 socketTimeoutMS을 사용하지 마세요.

소켓 시간 제한을 낮게 설정하면 서버가 응답하기 전에 오류가 발생하는 작업이 발생할 수 있습니다.

기본값: 0, 이는 시간 초과가 없음을 의미합니다. 드라이버 설명서를 참조하세요.

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

기본값: 드라이버 설명서를 참조하세요.

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

기본값: 0. 드라이버 설명서를 참조하세요.

각 작업 실행기 연결 풀이 주어진 mongod 인스턴스에 대해 열 수 있는 아웃바운드 연결의 최소 개수입니다.

기본값: 1. ShardingTaskExecutorPoolMinSize를 참조하세요.

매개 변수는 샤딩된 배포에만 적용됩니다.

선택적으로 ShardingTaskExecutorPoolMinSize를 재정의하여 각 TaskExecutor 연결 풀이 구성 서버에 대해 열 수 있는 최소 아웃바운드 연결 수를 설정하세요.

다음으로 설정하는 경우:

  • -1, ShardingTaskExecutorPoolMinSize가 사용됩니다. 이것이 기본값입니다.

  • -1보다 큰 정수 값으로 설정하면 각 작업 실행기 연결 풀이 구성 서버에 열 수 있는 아웃바운드 연결의 최소 개수를 재정의합니다.

매개 변수는 샤딩된 배포에만 적용됩니다.

기본값: -1

버전 5.0.10에 추가 되었습니다.

각 TaskExecutor 연결 풀이 지정된 mongod 인스턴스에서 열 수 있는 최대 아웃바운드 연결의 수입니다.

기본값: 2 64 - 1. ShardingTaskExecutorPoolMaxSize를 참조하세요.

매개 변수는 샤딩된 배포에만 적용됩니다.

각 TaskExecutor 연결 풀이 구성 서버에 열 수 있는 최대 아웃바운드 연결 수를 설정하려면 ShardingTaskExecutorPoolMaxSize에 대한 선택적 오버라이드를 선택하세요.

다음으로 설정하는 경우:

  • -1, ShardingTaskExecutorPoolMaxSize가 사용됩니다. 이것이 기본값입니다.

  • -1 보다 큰 정수 값은 각 TaskExecutor 연결 풀이 구성 서버에 열 수 있는 최대 아웃바운드 연결 수를 무시합니다.

매개 변수는 샤딩된 배포에만 적용됩니다.

기본값: -1

버전 5.0.10에 추가 되었습니다.

← MongoDB 성능