[신뢰성, 오류, 복구 패턴] 재시도(Retry) 패턴

재시도 패턴 문제 상황

클라이언트가 서비스를 호출하는 시스템이다. 또한 서비스는 다른 서비스를 호출하고 가끔 에러가 발생하고 있는 상황이다. 특히, 클라우드 환경에서는 Software/Hardware/Network 오류로 인해 Delay, Timeout, Failure 등이 자주 발생할 수 있다.

재시도 패턴

원격 서버에 같은 요청을 다시 전송하여 동일 작업을 재시도 한다.

재시도 패턴 - 고려사항

  • 어떤 에러를 재시도할 것인가?
    • 일시적인지?
    • 복구 가능한지?
  • 지연/백오프 전략을 사용할 것인가?
    • 재시도 스톰(Retry Storm)이 발생할 수 있다.
  • 랜덤화와 지터
  • 재시도 횟수와 시간
  • 멱등성
  • 재시도 로직을 어디에 둘 것인가?

재시도 스톰 (Retry Storm)

재시도 패턴 백오프 전략

장애가 발생한 서비스에 복구할 시간을 주어야 한다.

전략:

  • 고정된 시간 지연
    • 재시도하기까지 시간을 대기
  • 증분 지연
    • 재시도가 실패할 때마다 지연을 조금씩 늘리는 방법
  • 지수 백오프

참고

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유