목차


개요

Circuit Breaker는 시스템 안정성을 위한 중요한 패턴이지만, 잘못 설계할 경우 오히려 시스템 가용성을 크게 저하시킬 수 있는 단점들이 존재한다.

주요 단점

1. 샤딩된 시스템의 가용성 저하 (Sharded System Availability Degradation)

문제 정의

샤딩된 시스템에서 일부 샤드에만 장애가 발생했을 때, Circuit Breaker가 전체 시스템을 차단하여 부분 장애를 완전 장애로 확대시키는 현상

발생 시나리오

상황: 4개 샤드로 구성된 주문 데이터베이스

문제 발생 과정:

  1. 부분 장애: 샤드 D 장애로 25% 요청 실패
  2. Circuit Breaker 오작동: 10% 임계값 초과로 전체 시스템 차단
  3. 완전 장애: 정상 샤드까지 차단되어 100% 실패
# 잘못된 설정 예시
circuit_breaker_threshold = 10%  # 실패율 10% 넘으면 전체 차단
current_failure_rate = 25%       # 샤드 D 장애로 인한 실패율

if current_failure_rate > circuit_breaker_threshold:
    block_all_orders()  # 전체 주문 시스템 차단