Resilience4j for Circuit Breaker

HoJeong Choi·2025년 4월 6일
0

MSA

목록 보기
2/2

Circuit Breaker

  • 외부 서비스(API 등)가 실패할 경우 연속적인 호출로 시스템 전체에 부하를 주지 않도록 중단하는 보호 장치

필요성

  • MSA 환경에서는 서비스 간 호출이 많은데, 어떤 서비스가 느리거나 장애 상태일 때 계속 요청하면 전체 시스템에 지연/장애가 전파됨.
  • Circuit Breaker는 일정 실패율 이상이면 일시적으로 요청을 끊고, 일정 시간 뒤에 재시도

동작 방식 요약

상태설명
Closed정상 상태. 요청 정상 전송. 실패율이 높아지면 Open으로 전환
Open외부 서비스가 문제라고 판단됨. 요청 차단 (Fallback 호출 등)
Half-Open테스트 상태. 일부 요청만 전달하여 회복 여부 판단

Resilience4j 주요 기능 정리

기능목적대표 어노테이션
Fallback실패 시 대체 로직 수행fallbackMethod
Retry실패 시 재시도@Retry
RateLimiter요청 속도 제한 (초당 N회)@RateLimiter
Bulkhead동시 요청 수 제한 (Thread 격리)@Bulkhead
CircuitBreaker일정 실패율 이상 시 요청 차단@CircuitBreaker

0개의 댓글