MongoDB 드라이버는 서버 선택 알고리즘 을 사용하여 사용할 복제본 세트 멤버를 선택하거나, 여러 mongos 인스턴스에 연결된 경우 사용할 mongos 인스턴스 를 선택합니다.
서버 선택은 작업마다 한 번씩 발생합니다.
이 페이지의 정보는 다음 환경에서 호스팅되는 배포에 적용됩니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
복제본 세트에 대한 읽기 설정 (read preference)
서버 선택은 각 작업마다 한 번씩 발생하며, 읽기에 대한 멤버 자격을 결정하기 위해 읽기 설정 (read preference) 설정과 localThresholdMS 설정에 의해 관리됩니다. 읽기 설정 (read preference)은 각 작업마다 다시 평가됩니다.
읽기 설정 모드 | 선택 프로세스 |
|---|---|
|
|
| |
| |
| |
|
샤딩된 클러스터에 대한 읽기 설정 (read preference)
부하 분산
연결 시드 목록에 mongos 인스턴스가 두 개 이상 있는 경우 드라이버는 가장 "가까운" mongos(즉, 평균 네트워크 왕복 시간이 가장 짧은 멤버)를 결정하고, 이 "가장 가까운" mongos 인스턴스의 평균 왕복 시간과 localThresholdMS를 더하여 지연 시간 창을 계산합니다. 드라이버는 지연 시간 창에 속하는 mongos 인스턴스들 사이에서 무작위로 부하를 분산합니다.
읽기 설정 및 샤드
복제본 세트 샤드가 있는 샤딩된 클러스터의 경우 mongos는 샤드에서 읽을 때 읽기 설정 (read preference)을 적용합니다. 서버 선택은 읽기 설정 (read preference) 및 replication.localPingThresholdMs 설정에 따라 결정됩니다. 읽기 설정 (read preference)은 각 작업마다 다시 평가됩니다.
헤지된 읽기
mongos는 primary가 아닌 읽기 설정(read preference) 모드에 대한 헤지된 읽기(hedged read)를 지원합니다. 즉, mongos는 primary가 아닌 읽기 설정을 사용하는 경우 읽기 작업을 방지하기 위해 가능한 경우 다른 구성원에게 추가 읽기를 보낼 수 있습니다. 읽기 작업을 헤지하기 위해 전송되는 추가 읽기는 maxTimeMSForHedgedReads의 maxTimeMS 값을 사용합니다.
다음 작업에 대해 헤지된 읽기(hedged read)가 지원됩니다:
헤지된 읽기(hedged read)를 사용하려면 다음을 수행합니다.
mongos가 헤지된 읽기(hedged read) 지원을 활성화해야 합니다(기본값).readHedgingMode매개변수를 참조하세요.primary가 아닌 읽기 설정에서 헤지된 읽기(hedged read)를 활성화해야 합니다.
읽기 설정 모드 | 선택 프로세스 |
|---|---|
|
|
| |
| |
| |
|
| [1] | (1, 2) 기본 임계값은 15밀리초입니다. |