Topic
Circuit Breaker
JackerLab
2026. 1. 10. 14:26
728x90
반응형

개요
Circuit Breaker(서킷 브레이커) 패턴은 마이크로서비스 아키텍처에서 하나의 서비스 장애가 연쇄적으로 전체 시스템으로 전파되는 것을 막기 위해 고안된 보호 메커니즘이다. 외부 API, 데이터베이스, 하위 서비스 호출 실패가 반복되면 자동으로 요청을 차단하여 시스템 전체의 안정성과 가용성을 높인다.
1. 개념 및 정의
| 항목 | 설명 |
| 정의 | 실패가 일정 수준을 초과하면 호출을 차단하고 일정 시간 후 재시도하는 장애 회복 패턴 |
| 목적 | 연쇄적 장애(failure cascade)를 방지하고 회복 가능성 확보 |
| 필요성 | 서비스 간 강한 의존성을 가진 환경에서 단일 실패의 전체 영향 최소화 |
실제 전기 회로 차단기(Circuit Breaker)에서 유래한 개념이다.
2. 특징
| 특징 | 설명 | 비교 |
| 자동 상태 전이 | Closed, Open, Half-Open 상태를 자동 전환 | 수동 제어보다 반응 속도 ↑ |
| 실패 카운팅 기반 동작 | 오류율, 타임아웃 등을 기준으로 전환 | 고정된 타이머 방식보다 동적 |
| 보호 우선 설계 | 불안정한 서비스에 부담 전파 차단 | 리트라이 중심 패턴보다 효과적 |
Resilience4j, Hystrix, Istio 등 다양한 구현이 존재한다.
3. 구성 요소
| 구성 요소 | 설명 | 기술 |
| Failure Counter | 연속 실패 횟수 기록 | Sliding Window 기반 측정 |
| State Manager | 상태 전이 로직 관리 (Open↔Half↔Closed) | 시간 또는 성공 요청 기반 전이 |
| Timeout & Threshold | 오류 허용 기준 정의 | 시간 초과, 에러율 기준 설정 |
각 상태별 동작 로직은 유연하게 설정 가능하다.
4. 기술 요소
| 기술 요소 | 설명 | 활용 |
| Half-Open 상태 | 일부 요청만 허용하여 회복 여부 판단 | 점진적 복구 시도에 유리 |
| Fallback 메커니즘 | 실패 시 대체 로직 실행 | 캐시, 기본 응답, 대기열 활용 가능 |
| 메트릭 통합 | Prometheus, Grafana 연동 가능 | 운영 중 모니터링 체계 구축 |
컨트롤러, 게이트웨이, 서비스 메시 등 다양한 계층에 적용된다.
5. 장점 및 이점
| 장점 | 설명 | 기대 효과 |
| 장애 확산 방지 | 문제 발생 시 요청 차단 | 전체 시스템 부하 급증 차단 |
| 회복성 향상 | 비정상 상태 자동 감지 및 재시도 | SLA 유지 및 다운타임 감소 |
| 사용자 경험 보호 | 응답 불가 대신 대체 응답 제공 | 오류 페이지 노출 최소화 |
고가용성을 중시하는 MSA 환경에 적합하다.
6. 주요 활용 사례 및 고려사항
| 분야 | 활용 예시 | 고려사항 |
| 이커머스 | 결제 서비스 장애 시 fallback 처리 | 재시도 전략과 결합 필요 |
| 스트리밍 | 콘텐츠 요청 실패 시 기본 콘텐츠 제공 | 로깅 및 복구 시나리오 설계 필요 |
| 금융 서비스 | 외부 API 장애 시 캐시된 데이터 제공 | 민감 데이터 정확도 보장 필요 |
오탐지, 과도한 차단 방지를 위해 민감도 조정이 중요하다.
7. 결론
Circuit Breaker 패턴은 마이크로서비스 시스템이 장애 상황에서도 안정성과 신뢰성을 유지할 수 있도록 하는 핵심 설계 전략이다. 비정상 상태를 빠르게 감지하고 차단한 뒤, 점진적 회복 시도를 통해 시스템 전체의 생존성을 확보한다. 복원력 있는 분산 아키텍처 설계에 필수적인 구성 요소로 널리 활용되고 있다.
728x90
반응형