java Resilience4J断路器配置工作不正常
我正在尝试使用自定义CircuitbreakerConfig
构建弹性4jCircuitbreaker
使用以下代码构建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次呼叫缓慢,断路器应在50次时转换为断开状态。但只有在打了100次电话后,它才转变为开放状态
无法理解这种行为。正在寻求帮助
# 1 楼答案
删除failureRateThreshold作为一项测试,我的假设是它正在考虑failureRateThreshold和slowCallRateThreshold之间的总和才能生效