서킷 브레이커 – 문제 상황
온라인 데이팅 서비스에서 이미지 서버에 심각한 문제가 발생한 상황. 1시간의 복구 시간이 필요한 상황에서 데이팅 서비스에서는 어떻게 처리해야 할까?
서킷 브레이커 고려사항
- 이미지 서버의 지난 N번 요청 실패
- 재시도를 사용해야 할까?
- 재시도하지 말아야 할까?
- 재시도 패턴 – Optimistic 접근
- 다음 요청에는 성공할 것이다
- 서킷 브레이커 – Pessimistic 접근
- 다음 요청에도 실패할 것이다
서킷 브레이커
서킷 브레이커는 다른 서비스로의 요청을 래핑한다.
정상일 때는 회로가 폐쇄되어 있고 성공/실패 요청을 추적하고 있다.
서킷 브레이커 – 상태
서킷이 Open된 다음 결함이 복구되었다는 사실을 어떻게 알 수 있을까?
서킷 브레이커 패턴 – 고려사항
- 서킷 브레이커가 Open일 때 서비스 요청을 어떻게 처리할 것인가?
- 무시 (로깅 필요)
- 로깅 & 재실행
- 호출자에게 어떤 응답을 보내것인가?
- 실패 응답 (silient)
- 최적의 응답 (대체 이미지 등)
- 모든 외부 서비스에 개별 서킷 브레이커
- Half-Open 상태를 비동기 ping으로 대체/헬스체크
참고
반응형