CircuitBreaker는 서비스 간 장애를 감지하고, 실패하는 요청을 차단하여 장애 전파를 방지한다.
Resilience4j 라이브러리를 사용하여 CircuitBreaker를 구현하고, Redis 장애 시 RDB로 Failover 처리한다.
올리브영 재고 API에 적용하여 Redis 장애 발생 시, 유저 대기 시간을 감소시켰다.
CircuitBreaker는 서비스 호출 실패를 감지하여, 일정 시간 동안 호출을 차단한다. 구체적으로, Closed, Open, Half-Open 세 가지 상태를 가지며, 실패율 임계치 초과 시 Open 상태로 전환된다. 따라서, 장애 전파 방지 및 시스템 안정성 확보에 기여한다.
Resilience4j는 Netflix Hystrix의 대안으로, 가볍고 유연한 Fault Tolerance 라이브러리이다. 는 deprecated 되었지만, 는 Java 기반으로, 등 다양한 기능을 제공한다. 반면, Hystrix보다 설정 및 커스터마이징이 용이하다.
올리브영 재고 API는 Redis 장애 발생 시, RDB Failover를 통해 서비스 중단을 방지한다. 구체적으로, CircuitBreaker와 Retry를 함께 사용하여, Redis 연결 실패 시 재시도 후 RDB 조회를 수행한다. 따라서, 유저 경험 개선 및 서비스 가용성 향상을 달성했다.