콘텐츠로 바로가기

Circuit Breaker Pattern

장애 서비스로의 반복 호출을 차단하여 연쇄 장애(Cascading Failure)를 방지하는 회복성 패턴. 구현체: Resilience4j (Java), Polly (.NET), Hystrix (deprecated).

sys.entry
M

Me

hyunyoun's Blog

system-architecture-distributed-systems1 min read

Circuit Breaker Pattern

장애 서비스로의 반복 호출을 차단하여 연쇄 장애(Cascading Failure)를 방지하는 회복성 패턴.

상태 머신

CODE
CLOSED ──(오류율 임계값 초과)──▶ OPEN
  ▲                               │
  │                               │ (타임아웃 후)
  │                               ▼
  └──(성공)────────────── HALF-OPEN
                          (단일 테스트 요청)

CLOSED: 정상. 모든 요청 통과. 오류율 카운팅.
OPEN: 차단. 즉시 fallback 반환 (빠른 실패). 다운스트림 회복 시간 확보.
HALF-OPEN: 회복 테스트. 제한적 요청만 통과 → 성공 시 CLOSED, 실패 시 OPEN 복귀.

설정 파라미터

파라미터 의미 예시
failureRateThreshold OPEN 전환 오류율 50%
waitDurationInOpenState OPEN 유지 시간 30s
slidingWindowSize 오류율 측정 윈도우 최근 10회

Fallback 전략

  • 캐시된 이전 응답 반환
  • 기본값(degraded response) 반환
  • 다른 서비스로 라우팅

구현체: Resilience4j (Java), Polly (.NET), Hystrix (deprecated).

연결 노트