더북(TheBook)

3.2.3 부분 실패 처리: 회로 차단기 패턴

분산 시스템은 서비스가 다른 서비스를 동기 호출할 때마다 부분 실패할 가능성이 항상 존재합니다. 클라이언트/서비스는 모두 개별 프로세스로 동작하기 때문에 서비스가 클라이언트 요청에 제때 응답하지 못하거나, 유지보수 또는 기술적 오류 때문에 서비스가 내려갈 수 있습니다. 서비스에 과부하가 걸려 응답이 매우 늦어지는 경우도 있습니다.

클라이언트는 응답 대기 도중 블로킹되기 때문에 서비스 실패는 클라이언트의 클라이언트로 거슬러 올라가면서 전체 시스템의 중단을 초래할 위험도 있습니다.

Note≡ 패턴: 회로 차단기(circuit breaker)

연속 실패 횟수가 주어진 임계치를 초과하면 일정 시간 동안 호출을 즉시 거부하는 RPI 프록시21다.

그림 3-2 같은 상황을 생각해 봅시다. API 클라이언트가 애플리케이션에 진입하는 관문인 API 게이트웨이(8장)에 모바일 클라이언트가 REST 요청을 하지만 API 게이트웨이가 요청을 위임한 주문 서비스는 묵묵부답인 상태입니다.

▲ 그림 3-2 API 게이트웨이는 주문 서비스 같은 무응답 서비스로부터 스스로를 지켜야 한다

 

 


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.