목차
Circuit Breaker는 시스템 안정성을 위한 중요한 패턴이지만, 잘못 설계할 경우 오히려 시스템 가용성을 크게 저하시킬 수 있는 단점들이 존재한다.
샤딩된 시스템에서 일부 샤드에만 장애가 발생했을 때, Circuit Breaker가 전체 시스템을 차단하여 부분 장애를 완전 장애로 확대시키는 현상
상황: 4개 샤드로 구성된 주문 데이터베이스
문제 발생 과정:
# 잘못된 설정 예시
circuit_breaker_threshold = 10% # 실패율 10% 넘으면 전체 차단
current_failure_rate = 25% # 샤드 D 장애로 인한 실패율
if current_failure_rate > circuit_breaker_threshold:
block_all_orders() # 전체 주문 시스템 차단