📝 개념 정리

마이크로서비스 환경에서는 하나의 서비스 장애가 다른 서비스로 전파되어 전체 시스템 장애로 이어질 수 있습니다.

예를 들어, Order Service에서 주문을 생성하는 도중 User Service가 응답하지 않으면, Order Service도 정상적으로 동작할 수 없습니다.

이때 응답 무한 대기 또는 전체 서비스 중단이 발생할 수 있습니다.

이를 해결하기 위해 회복성(Resilience) 패턴이 필요합니다.

Resilience4j는 자바 기반 마이크로서비스에서 장애 허용성(Fault Tolerance)을 구현하는 경량 라이브러리입니다.


💡 Resilience4j 주요 회복성 패턴

  1. Circuit Breaker (서킷 브레이커)
  2. Retry (재시도)
  3. Rate Limiter (속도 제한)
  4. Bulkhead (격벽)
  5. Time Limiter (타임아웃)
  6. Cache (캐시)

⚙️ 장애 발생 시 처리 흐름 예시

  1. Order ServiceUser Service로 사용자 정보 요청
  2. User Service 장애로 응답 불가
  3. Resilience4j Circuit Breaker가 연속 실패 감지 후 회로(Open)로 전환
  4. Retry 패턴으로 지정 횟수 재시도