有 Java 编程相关的问题?

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

java I使用Hystrix(1.5.18),并设置param ErrorThresholdPercentage=30,当marksuccess时,circuitbreak状态开关始终为

我使用hystrix(1.5.18)将ErrorThresholdPercentage设置为30,当超过阈值的错误百分比circuitBreak打开时

但是,当预先请求返回成功时,它将调用marksuccess方法将circuitBreak设置为false

它就像一个循环来切换circuitBreak状态

这是hystrix里的一只虫子吗

.withCircuitBreakerErrorThresholdPercentage(30)
.withCircuitBreakerSleepWindowInMilliseconds(2000) 

我预计消费者会在2000ms后尝试请求,但不会在一个提前请求返回成功后不久


共 (1) 个答案

  1. # 1 楼答案

    可能您误解了属性circuitBreaker.sleepWindowInMilliseconds的含义

    如果电路断开,您的所有请求将在sleepWindowInMilliseconds期间被拒绝。经过sleepWindowInMilliseconds毫秒后,它将变成half-open状态。在此状态下,只允许一个请求,如果成功,电路将再次关闭

    我猜您看到了这样一种情况:您的请求在half-open状态下成功,并关闭了电路

    下面来自官方维基的图表可以帮助您理解。 enter image description here