Java 我使用Hystrix(1.5.18),并将param ErrorThresholdPercentage设置为30,即始终标记成功时的断路器状态开关
我使用hystrix(1.5.18)设置Java 我使用Hystrix(1.5.18),并将param ErrorThresholdPercentage设置为30,即始终标记成功时的断路器状态开关,java,hystrix,Java,Hystrix,我使用hystrix(1.5.18)设置ErrorThresholdPercentage等于30,当错误百分比超过阈值时,CirctureBreak打开 但是,当预先请求返回成功时,它将调用marksuccess方法来设置circuitBreakfalse 它就像一个循环来切换断路器状态 这是hystrix里的一只虫子吗 .withCircuitBreakerErrorThresholdPercentage(30) .withCircuitBreakerSleepWindowInMillisec
ErrorThresholdPercentage
等于30,当错误百分比超过阈值时,CirctureBreak
打开
但是,当预先请求返回成功时,它将调用marksuccess
方法来设置circuitBreak
false
它就像一个循环来切换断路器
状态
这是hystrix里的一只虫子吗
.withCircuitBreakerErrorThresholdPercentage(30)
.withCircuitBreakerSleepWindowInMilliseconds(2000)
我预计消费者将在2000毫秒后尝试请求,但在一个提前请求返回成功后不久,可能您误解了属性的含义 如果电路断开,您的所有请求将在
sleepWindowInms
期间被拒绝。在sleepWindowInMillimes
毫秒过后,它将变成半开状态。在此状态下,只允许一个请求,如果成功,电路将再次关闭
我猜您看到了这样一种情况,即您的请求在半开状态下成功,并关闭了电路
下面来自官方维基的图表可以帮助您理解。
谢谢你的回答,我知道原因了。web上的版本1.5.18有一些问题。方法marksuccess不是最新的,它没有检查半开状态。我将版本更改为1.5.12以解决问题。谢谢