AI Briefing

Circuitbreaker를 사용한 장애 전파 방지

·2023.09.01 02:00

CircuitBreaker의 개념과 상태 변화, 그리고 Resilience4j 라이브러리의 활용법을 설명한다.

서비스 간 통신 중 발생하는 장애가 전체 시스템으로 확산되는 것을 막기 위해 CircuitBreaker를 도입한다. 이는 가정용 누전 차단기처럼 문제가 발생한 지점을 감지하여 실패하는 요청을 차단함으로써 시스템의 복구를 돕고 사용자 대기 시간을 줄이는 역할을 한다.

CircuitBreaker는 Closed(정상), Open(장애), Half Open(복구 판단)의 세 가지 상태를 가진다. 실패율이나 느린 호출 비율이 임계치에 도달하면 Open 상태로 전환되어 외부 요청을 차단하며, 일정 시간이 지나면 Half Open 상태에서 테스트 요청을 수행해 정상 여부를 판단한다.

현재 MSA 환경에서는 기존의 Netflix Hystrix 대신 경량 Java 라이브러리인 Resilience4j 사용이 권장된다. Resilience4j는 CircuitBreaker 외에도 Retry, RateLimiter, TimeLimiter, Bulkhead, Cache 등 다양한 모듈을 제공하며, 각 모듈은 정해진 우선순위에 따라 중첩되어 적용된다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.