재시도 패턴 – 문제 상황
클라이언트가 서비스를 호출하는 시스템이다. 또한 서비스는 다른 서비스를 호출하고 가끔 에러가 발생하고 있는 상황이다. 특히, 클라우드 환경에서는 Software/Hardware/Network 오류로 인해 Delay, Timeout, Failure 등이 자주 발생할 수 있다.
재시도 패턴
원격 서버에 같은 요청을 다시 전송하여 동일 작업을 재시도 한다.
재시도 패턴 - 고려사항
- 어떤 에러를 재시도할 것인가?
- 일시적인지?
- 복구 가능한지?
- 지연/백오프 전략을 사용할 것인가?
- 재시도 스톰(Retry Storm)이 발생할 수 있다.
- 랜덤화와 지터
- 재시도 횟수와 시간
- 멱등성
- 재시도 로직을 어디에 둘 것인가?
재시도 스톰 (Retry Storm)
재시도 패턴 – 백오프 전략
장애가 발생한 서비스에 복구할 시간을 주어야 한다.
전략:
- 고정된 시간 지연
- 재시도하기까지 시간을 대기
- 증분 지연
- 재시도가 실패할 때마다 지연을 조금씩 늘리는 방법
- 지수 백오프
참고
반응형