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