有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    删除failureRateThreshold作为一项测试,我的假设是它正在考虑failureRateThreshold和slowCallRateThreshold之间的总和才能生效