【问题标题】:resilience4j Time based circuit breaker behaves as count based弹性4j 基于时间的断路器表现为基于计数
【发布时间】:2021-08-14 04:06:07
【问题描述】:

我正在尝试使用此配置测试基于时间的断路器:

       failureRateThreshold :  50                 
       slidingWindowSize : 2                  
       slidingWindowType : TIME_BASED         
       minimumNumberOfCalls    : 100

我期待它会在 2 秒后触发失败率计算为slidingWindowSize=2, 但它会在调用次数超过 100 (minimumNumberOfCalls) 时执行。 即使 2 秒后没有达到 100 次调用,它也永远不会更改为 OPEN 状态(即使所有调用都失败了)。

这是一个错误还是预期的行为?

【问题讨论】:

    标签: java circuit-breaker resilience4j


    【解决方案1】:

    是的。这是 here on docs

    解释的预期行为

    配置在 CircuitBreaker 计算错误率或慢速调用率之前所需的最小调用次数(每个滑动窗口周期)。 例如,如果 minimumNumberOfCalls 为 10,则必须记录至少 10 次呼叫,然后才能计算失败率。 如果只记录了 9 个呼叫,即使所有 9 个呼叫都失败,CircuitBreaker 也不会转换为打开状态。

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 2021-08-28
      • 1970-01-01
      • 2012-01-24
      相关资源
      最近更新 更多