...
- 정리
Info icon false - Circuit Open 여부는 통계를 기반으로 한다.
- 최근 10초간 호출 통계
- metrics.rollingStats.timeInMilliseconds : 10000
- 최소 요청 갯수(20) 넘는 경우만
- circuitBreaker.requestVolumeThreshold : 20
- 에러 비율 넘는 경우(50%)
- circuitBreaker.errorThresholdPercentage : 50
- 한번 Circuit이 오픈되면 5초간 호출이 차단되며, 5초 경과후 단 “1개”의 호출을 허용하며 (Half-Open), 이것이 성공하면 Circuit을 다시 CLOSE하고, 여전히 실패하면 Open이 5초 연장된다.
- circuitBreaker.sleepWindowInMilliseconds : 5000
- Circuit Breaker의 단위 ?
- 에러 비율을 통계의 단위
- Circuit Open / Close가 함께 적용되는 단위
- 즉, A 메소드와 B 메소드가 같은 Circuit Breaker를 사용한다면, A와 B의 에러 비율이 함께 통계내어지고, Circuit이 오픈되면 함께 차단된다.
- Circuit의 지정은 ?
- 'commandKey' 라는 프로퍼티로 지정 가능.
- @HystrixCommand에서는 지정하지 않는 경우 메소드 이름 사용
- 이렇게 사용하지 말것 !
- 메소드 이름은 겹칠 수 있으며, 나중에 나오는 Feign의 경우 또 다르기 때문에 헷갈 릴 수 있다.
- 항상 직접 지정 해서 사용하기