我正在尝试使用自定义Circuitbreaker
构建Resilience4J CircuitbreakerConfig
使用以下代码构建CircuitbreakerConfig
CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig
.custom()
.slidingWindowSize(100)
.failureRateThreshold(50)
.slowCallRateThreshold(50)
.slowCallDurationThreshold(
Duration.ofMillis(1000))
.waitDurationInOpenState(
Duration.ofMillis(1000))
.recordExceptions(IOException.class,
FeignException.FeignServerException.ServiceUnavailable.class)
.ignoreExceptions(
FeignException.FeignServerException.InternalServerError.class)
.build();
CircuitBreaker circuitBreaker = CircuitBreaker.of("sample-cb", circuitBreakerConfig);
我正在使用它进行HTTP调用。它始终需要1000毫秒以上的时间才能做出响应。理想情况下,如果前100个呼叫速度较慢,CircuitBreaker应该在50时转换为OPEN状态。但是只有在100次调用后,它才会转换为OPEN状态。
无法理解这种行为。寻求帮助。
最佳答案
删除failureRateThreshold作为测试,我的假设是它正在考虑failRateThreshold和slowCallRateThreshold之间的总和才能生效