[스프링] Hystrix의 동적 프로퍼티 설정
Hystrix는 서킷 브레이커 라이브러리로, 애플리케이션에서 외부 서비스 호출을 보호하는 데 사용됩니다. Hystrix의 설정은 주로 정적인 방식으로 이루어지지만 때로는 동적으로 프로퍼티를 변경해야 할 수 있습니다. 이 글에서는 스프링 부트 애플리케이션에서 Hystrix의 동적 프로퍼티 설정 방법을 살펴보겠습니다.
1. 필요한 의존성 추가
먼저 pom.xml 파일에 spring-cloud-starter-netflix-hystrix
의존성을 추가합니다.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2. 프로퍼티 설정
애플리케이션의 application.properties 혹은 application.yml 파일에 Hystrix의 기본 설정을 추가합니다.
hystrix:
command:
default:
execution.isolation.thread.timeoutInMilliseconds: 1000
3. 동적 프로퍼티 변경
애플리케이션을 시작한 후, Hystrix의 프로퍼티를 동적으로 변경하려면 HystrixCommandProperties.Setter 클래스의 인스턴스를 사용합니다. 다음은 Hystrix의 타임아웃 값을 동적으로 2000ms로 변경하는 예제입니다.
HystrixCommand.Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("GroupName"))
.andCommandPropertiesDefaults(HystrixCommandProperties.Setter()
.withExecutionTimeoutInMilliseconds(2000));
위 예제에서 withExecutionTimeoutInMilliseconds
메서드를 사용하여 동적으로 타임아웃 시간을 변경할 수 있습니다.
Hystrix의 동적 프로퍼티 설정은 애플리케이션의 유연성을 높일 수 있으며, 변경된 프로퍼티는 즉시 적용되어 외부 서비스 호출을 보호할 수 있습니다.
참고 문헌:
- https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.1.RELEASE/reference/html/#circuit-breaker-hystrix-clients-dynamic-properties