재시도 가능한 읽기
이 페이지의 내용
재시도 가능 읽기는 특정 네트워크 또는 서버 오류가 발생할 경우 MongoDB 드라이버가 특정 읽기 작업을 한 번만 자동으로 재시도할 수 있도록 합니다.
전제 조건
- 최소 드라이버 버전
MongoDB Server 4.2 이상과 호환되는 공식 MongoDB 드라이버는 재시도 가능 읽기를 지원합니다.
공식 MongoDB 드라이버에 대한 자세한 내용은 MongoDB 드라이버를 참조하세요.
- 최소 서버 버전
- 드라이버는 MongoDB Server 3.6 이상에 연결된 경우에만 읽기 작업을 다시 시도할 수 있습니다.
재시도 가능 읽기 활성화
MongoDB Server 4.2 이상과 호환되는 공식 MongoDB 드라이버는 기본값 재시도 가능 읽기를 활성화 합니다. 재시도 가능 읽기를 명시적으로 비활성화하려면 retryReads=false
배포서버 서버에 string 대한 연결 에 를 지정합니다.
mongosh
재시도 가능 읽기를 지원하지 않습니다.
재시도 가능 읽기 작업
MongoDB 드라이버는 다음 읽기 작업 재시도를 지원합니다. 이 목록은 각 메서드에 대한 일반적인 설명을 참조하세요. 구체적인 구문과 사용법은 해당 메서드에 대한 드라이버 문서를 참조하세요.
방법 | 설명 |
---|---|
CRUD API 읽기 작업 | |
Collection.watch Database.watch MongoClient.watch | 변경 스트림 작업 |
MongoClient.listDatabases Database.listCollections Collection.listIndexes | 열거 작업 |
Collection.find 가 지원하는 GridFS 작업(예: GridFSBucket.openDownloadStream ) | GridFS 파일 다운로드 작업 |
MongoDB 드라이버에는 헬퍼 메서드나 재시도 가능 읽기 작업을 감싸는 메서드와 같은 다른 작업에 대한 재시도 지원이 포함될 수 있습니다. 메서드가 명시적으로 재시도 가능 읽기를 지원하는지 확인하려면 드라이버 문서를 참조하세요.
지원되지 않는 읽기 작업
다음 작업은 재시도 가능 읽기를 지원하지 않습니다.
읽기 또는 쓰기 명령에 대해 구애받지 않는 일반
Database.runCommand
헬퍼에 전달된 모든 읽기 명령입니다.
행동
지속적인 네트워크 오류
MongoDB 재시도 가능 읽기는 한 번만 재시도할 수 있습니다. 이는 일시적인 네트워크 오류나 복제본 세트 투표를 해결하는 데 도움이 되지만 지속적인 네트워크 오류는 해결하지 못합니다.
페일오버 기간
드라이버는 읽기 작업을 다시 시도하기 전에 읽기 명령의 원래 읽기 설정을 사용하여 서버 선택을 수행합니다. 드라이버가 원래 읽기 설정을 사용하여 재시도를 시도할 서버를 선택할 수 없는 경우 드라이버는 원래 오류를 반환합니다.
드라이버는 서버 선택을 수행하기 전에 serverSelectionTimeoutMS
밀리초 동안 대기합니다. 재시도 가능 읽기는 serverSelectionTimeoutMS
동안 대기 후 적격 서버가 존재하지 않는 인스턴스를 처리하지 않습니다.