java - 我使用 Hystrix(1.5.18) ,并设置参数 ErrorThresholdPercentage=30,始终在标记成功时切换断路状态

标签 java hystrix

我使用hystrix(1.5.18)设置ErrorThresholdPercentage等于30,当错误百分比超过阈值时,CircuitBreak打开。

但是,当提前请求返回成功时,它会调用 marksuccess 方法来设置 CircuitBreak false。

就像一个循环来切换CircuitBreak状态。

这是 hystrix 中的错误吗?

.withCircuitBreakerErrorThresholdPercentage(30)
.withCircuitBreakerSleepWindowInMilliseconds(2000) 

我预计消费者会在 2000 毫秒后尝试请求,但不会在前一个请求返回成功后立即尝试

最佳答案

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

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

我猜您在半开状态下看到了请求成功并关闭电路的情况。

下图来自官方wiki,可以帮助你理解。 enter image description here

关于java - 我使用 Hystrix(1.5.18) ,并设置参数 ErrorThresholdPercentage=30,始终在标记成功时切换断路状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57817549/

相关文章:

java - Google 结算库 - 检查订阅免费试用资格

java - Spring cloud中Zuul服务器的回退方法

JavaFX-如何避免将空值从任何内容加载到 TextField?

java - 使用 MultivalueMap 后调用中的问题

java - Hystrix状态未暴露在/health下

spring-cloud - 无法在 Spring Cloud 中获取/hystrix.stream

spring - 无法使用 Spring Cloud 连接到 Hystrix Dashboard 的 Command Metric Stream

asynchronous - 这个异步 HystrixCommand 有什么问题?

java: 调用一个方法

java - 您如何以编程方式搜索 Google 的 Java API