[스프링] Hystrix의 폴백 및 회로 차단 기능

스프링 클라우드는 Netflix OSS 컴포넌트 중 하나인 Hystrix를 통합할 수 있는 편리한 기능을 제공합니다. Hystrix는 분산 시스템에서의 장애 회피 및 격리를 위한 라이브러리로, 폴백(Fallback)회로 차단(Circuit Breaker) 기능을 제공합니다.

폴백(Fallback) 기능

분산 시스템에서 API 호출 시 발생하는 장애에 대비하여 Hystrix는 폴백 기능을 제공합니다. 폴백은 주요 동작에 실패했을 때 대체할 수 있는 보조 동작을 정의하는데, 이를 통해 장애 시 사용자 경험을 보호할 수 있습니다.

@HystrixCommand(fallbackMethod = "fallbackMethod")
public String mainMethod() {
    // 원본 동작
}

public String fallbackMethod() {
    // 폴백 동작
}

위의 예제에서 mainMethod가 실패했을 때 fallbackMethod가 실행됩니다.

회로 차단(Circuit Breaker) 기능

Hystrix는 장애 서비스에 대한 회로 차단을 지원합니다. 이 기능을 통해 장애 서비스로의 요청을 차단하여 전체 시스템에 더 큰 문제가 발생하는 것을 막을 수 있습니다.

@HystrixCommand(commandProperties = {
        @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "4"),
        @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = "50"),
        @HystrixProperty(name = "metrics.rollingStats.timeInMilliseconds", value = "10000")
})
public String mainMethod() {
    // 원본 동작
}

위의 예제에서는 Circuit Breaker 동작이 정의되어 있으며, 설정된 임계값을 초과할 경우 서비스를 차단합니다.

이를 통해 스프링 클라우드 Netflix의 Hystrix 라이브러리를 사용하여 시스템의 안정성을 보장할 수 있습니다.

참고 자료