[스프링] 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를 사용하여 스프링 애플리케이션에 서킷 브레이커를 설정하면, 분산 시스템에서의 장애 회복을 보다 효과적으로 처리할 수 있습니다. 위의 설정을 통해 서킷 브레이커의 동작을 세밀하게 제어할 수 있으며, 시스템의 안정성을 증진시킬 수 있습니다.

참고 자료