AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

부하 차단으로 인한 과부하 오류 처리

오버로드는 클러스터 리소스가 프로세스 할 수 있는 것보다 더 많은 수신 작업을 수신할 때 발생하며, 이로 인해 클러스터 완전히 중단되거나 거의 중단될 수 있습니다. 지능형 워크로드 관리(IWM)의 기능 로드 차단을 통해 Atlas 장기간의 과부하 시 작업을 거부할 수 있습니다. 클러스터 에 대한 로드 차단을 구성하려면 Intelligent Workload Management 구성을 참조하세요.

부하 차단이 작업을 거부하면 애플리케이션 SystemOverloadedError 레이블과 함께 해당 작업에 대한 새로운 오류가 표시될 수 있습니다. 이 오류는 클러스터 가 오버로드되어 작업이 중단되었음을 나타냅니다.

역압 인식 클라이언트 라이브러리를 사용하는 경우 클라이언트 라이브러리는 이러한 오류를 인식하고 다시 시도하기에 안전한 오류를 다시 시도합니다. 재시도를 계속할 시간과 부하를 분산해야 하는 시점은 여전히 애플리케이션 에서 제어할 수 있습니다. 자세히 학습 오버로드 오류 처리를 참조하세요.

SystemOverloadedError 레이블 자체가 작업을 안전하게 재시도할 수 있음을 MEAN 하지는 않습니다. 과부하 오류를 재시도할 수 있는지 확인하려면 다음 레이블을 확인하세요.

  • RetryableError - 작업이 실행되지 않았으며 다시 시도하는 것이 안전합니다.

  • NoWritesPerformed - 서버 쓰기를 수행하기 전에 작업을 거부했습니다.

다음 예시 부하 차단이 작업을 거부할 때 Atlas 반환하는 과부하 오류를 보여줍니다.

{
"ok": 0.0,
"errmsg": "Request rejected: ingress operation rate limit exceeded",
"code": 463,
"codeName": "IngressOperationRateLimitExceeded",
"errorLabels": ["SystemOverloadedError", "RetryableError", "NoWritesPerformed"]
}

중요

과부하 오류에 RetryableError 레이블이 포함되지 않은 경우, 작업이 멱등 있는지 확인하고 과부하가 발생하지 않도록 재시도하기 전에 기다립니다. 재시도 로직에 지수 백오프 및 지터를 사용합니다.

역압 인식 드라이버 및 기타 클라이언트 라이브러리는 SystemOverloadedError 레이블이 있는 과부하 오류를 자동으로 인식하고 과부하 신호로 처리합니다. 오류에 RetryableError 레이블을 포함하여 재시도를 유도하는 레이블이 있는 경우 역압 인식 클라이언트 라이브러리는 지수 백오프 및 지터를 사용하여 작업을 자동으로 재시도합니다.

다음 표에는 역압을 인식하는 가장 오래된 클라이언트 라이브러리 버전이 나열되어 있습니다.

클라이언트 라이브러리
가장 이른 배압 인식 버전

C 드라이버

2.5

C++ 드라이버

4.6

.NET/C# 드라이버

3.11

Go 드라이버

2.9

Java 동기화 드라이버

5.12

Java Reactive Streams 드라이버

5.12

코틀린 코루틴 드라이버

5.12

Kotlin Sync 드라이버

5.12

Node.js 드라이버

7.6

PHP 라이브러리

2.5; mongodb PHP 확장(PHPC) 2이 필요합니다.5.0+

PyMongo

4.18

Scala드라이버

5.12

Ruby

2.26

Rust

3.9

역압 인식 클라이언트 라이브러리를 사용하는 경우에도 애플리케이션 의 과부하 오류를 처리합니다. 역압 인식 클라이언트 라이브러리는 재시도 가능으로 표시된 작업을 재시도하지만, 재시도를 계속할 기간과 부하를 분산할 시점은 클러스터 계속 거부하는 작업을 포기하여 애플리케이션 결정합니다. 역압 인식 클라이언트 라이브러리를 사용하지 않는 경우 오류 감지를 구현 하고 로직을 재시도하세요.

재시도 가능으로 레이블이 지정된 과부하 오류를 처리하다 위해 지수 백오프를 사용하여 오류 감지 및 재시도 로직을 구현 방법의 예는 다음 절차를 참조하세요.

다음 절차에 따라 과부하 오류를 감지하고 지수 백오프로 재시도하는 유틸리티를 구현 .

과부하 오류로 인해 실패한 작업을 재시도할 때 다음 지침을 사용하여 과부하가 발생하지 않도록 하고 성공적인 재시도 가능성을 높일 수 있습니다.

  • 재시도 횟수 제한: 작업당 최대 두 번 재시도할 수 있습니다. 제한이 높으면 오류 비율이 줄어들지만 과부하 시 서버 부하가 증가하며, 재시도 횟수를 줄이면 서버 부하를 줄일 수 있지만 오류 비율이 증가할 수 있습니다.

  • 선택적으로 적용: 지연 시간에 민감하거나 비즈니스에 중요한 작업에만 이 패턴 사용하세요. 배경 워크로드의 경우 오류를 로그 하고 더 긴 지연으로 더 높은 수준에서 다시 시도합니다.