hystrix电路开放事件

时间:2017-01-13 22:34:56

标签: spring hystrix spring-cloud-netflix

我已经为hystrix命令配置了弹簧方面,它工作正常(打开和关闭电路)

在我的测试中,我观察到的是当电路打开时,仍会调用正常流程,并且在事件失败时,将调用后退。

我从文档中了解到,当电路打开时,正常流程将仅在五秒内检查一次(默认)。我尝试手动将值设置为20秒,但仍然无法正常工作

@HystrixCommand(commandProperties = {
            @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds", value = "20000")
        },
            fallbackMethod = "fallbackCall")

我在哪里设置此配置?我不希望每次调用错误服务,然后转到后备。

1 个答案:

答案 0 :(得分:1)

我正在进行的测试配置不正确。 为了SHORT_CIRCUIT,应该满足circuitBreaker.requestVolumeThreshold。

在我的情况下,默认值为20,滚动窗口中的失败次数不超过20。所以短路从未发生过。下面是我通过流程响应从另一个堆栈获得的文档

within a timespan of duration metrics.rollingStats.timeInMilliseconds, the percentage of actions resulting in a handled exception exceeds errorThresholdPercentage, provided also that the number of actions through the circuit in the timespan is at least requestVolumeThreshold

我将circuitBreaker.requestVolumeThreshold设置为1,它按预期工作。