[스프링] Hystrix의 서킷 브레이커 설정
서킷 브레이커란?
서킷 브레이커
는 분산 시스템에서의 장애 회복을 위한 패턴 중 하나로, 장애가 발생했을 때 주어진 시간 동안 시스템의 일부 혹은 전체를 격리시키고, 회복 가능성을 판단한 뒤에 적절한 조치를 취함으로써 시스템의 안전성을 보장하는 메커니즘입니다.
Hystrix 서킷 브레이커
스프링 애플리케이션에서 서킷 브레이커를 구현하기 위해 주로 Hystrix
를 사용합니다. Hystrix는 Netflix에서 개발한 라이브러리로, 분산 시스템 간의 통신에서 발생할 수 있는 지연 또는 장애를 처리하기 위한 도구입니다.
Hystrix 사용하기
의존성 추가
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
서킷 브레이커 설정
기본 설정
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 3000
circuitBreaker:
errorThresholdPercentage: 50
requestVolumeThreshold: 20
sleepWindowInMilliseconds: 5000
각각의 서킷 브레이커에 대한 추가 설정
hystrix:
command:
myCommandKey:
execution:
isolation:
thread:
timeoutInMilliseconds: 3000
circuitBreaker:
errorThresholdPercentage: 50
requestVolumeThreshold: 20
sleepWindowInMilliseconds: 5000
결론
Hystrix를 사용하여 스프링 애플리케이션에 서킷 브레이커를 설정하면, 분산 시스템에서의 장애 회복을 보다 효과적으로 처리할 수 있습니다. 위의 설정을 통해 서킷 브레이커의 동작을 세밀하게 제어할 수 있으며, 시스템의 안정성을 증진시킬 수 있습니다.