핵심 요약
올리브영은 재고 API에 CircuitBreaker(Resilience4j)와 Retry를 적용해 Redis 장애가 서비스 전파로 확산되는 것을 차단하고, Redis 장애 시 Oracle RDB로 즉시 failover하도록 구성했습니다.
구현 방법
- Resilience4j CircuitBreaker+Retry 의존성 적용
- CircuitBreaker 설정: failureRateThreshold 10%, slowCallDurationThreshold 500, slowCallRateThreshold 10%, waitDurationInOpenState 30000ms, minimumNumberOfCalls 50, slidingWindowSize 100, permittedNumberOfCallsInHalfOpenState 30
- Retry 설정: waitDuration 100ms, maxAttempts 2
- 우선순위 조정: Retry를 CircuitBreaker보다 먼저 적용하도록 구성
- 실패 시나리오별 fallback: Redis Miss 시 RDB 조회 후 Redis 재저장, Circuit Open 시 RDB 조회로 failover
- Health/모니터링: Actuator health로 상태 확인 가능, Datadog으로 지표 모니터링
주요 결과
- Redis 장애 시 불필요한 대기 제거를 위한 빠른 failover 도입
- Actuator 건강 페이지에서 CB_REDIS 상태를 CLOSED로 확인 가능
- Datadog 연동으로 회복력 지표를 지속적으로 모니터링



