MongoDB 드라이버는 서버 선택 알고리즘 을 사용하여 사용할 복제본 세트 멤버를 선택하거나, 여러 mongos 인스턴스에 연결된 경우 사용할 mongos 인스턴스 를 선택합니다.
서버 선택은 작업마다 한 번씩 발생합니다.
참고
읽기 작업이 포함된 트랜잭션 은 읽기 설정 (read preference) primary를 사용해야 합니다. 특정 트랜잭션 의 모든 작업은 동일한 노드로 라우팅되어야 합니다.
복제본 세트에 대한 읽기 설정 (read preference)
서버 선택은 각 작업마다 한 번씩 발생하며, 읽기에 대한 멤버 자격을 결정하기 위해 읽기 설정 (read preference) 설정과 localThresholdMS 설정에 의해 관리됩니다. 읽기 설정 (read preference)은 각 작업마다 다시 평가됩니다.
읽기 설정 모드 | 선택 프로세스 |
|---|---|
|
|
| |
| |
| |
|
샤딩된 클러스터에 대한 읽기 설정 (read preference)
부하 분산
연결 시드 목록 에 인스턴스 두 개 이상 있는 경우 드라이버 가 "가장 가까운"(즉, 평균 mongos mongos 네트워크mongos localThresholdMS왕복 시간이 가장 낮은 노드) 을(를) 결정하고 지연 시간 창 을(를) 계산합니다. 이 "가장 가까운" 인스턴스 와 의 평균 왕복 시간을 더합니다. 운전자 지연 시간 창에 속하는 mongos 인스턴스 간에 무작위로 부하를 분산합니다.
참고
localThresholdMS 서버 선택을 지연 시간이 짧은 로컬 대상으로 편중합니다. 이 설정은 단일 비공개 엔드포인트가 생성하는 리전 간 네트워크 토폴로지 제거 하거나 모든 연결이 로컬 리전 에 유지되도록 보장할 수 없습니다. 이 구성에서도 클라이언트는 다른 리전의 mongos 를 통해 계속 연결할 수 있습니다.
읽기 설정 및 샤드
복제본 세트 샤드가 있는 샤딩된 클러스터의 경우 mongos는 샤드에서 읽을 때 읽기 설정 (read preference)을 적용합니다. 서버 선택은 읽기 설정 (read preference) 및 replication.localPingThresholdMs 설정에 따라 결정됩니다. 읽기 설정 (read preference)은 각 작업마다 다시 평가됩니다.
읽기 설정 모드 | 선택 프로세스 |
|---|---|
|
|
| |
| |
| |
| [1] | (1, 2) 기본 임계값은 15밀리초입니다. |