我已经为hystrixcommand配置了spring方面,它工作得很好(打开和关闭电路)
在我的测试中,我观察到,当电路打开时,正常流仍然被调用,在发生故障时,会调用掉回。
我从文档中了解到,当电路打开时,正常流将只在5秒内检查一次(默认)。我尝试手动将值设置为20秒,但仍然没有工作。
@HystrixCommand(commandProperties = {
@HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds", value = "20000")
},
fallbackMethod = "fallbackCall")我在哪里设置这个配置?我不希望每次调用错误服务,然后进入回退。
发布于 2017-01-14 07:25:02
我正在做的测试配置不正确。为了实现SHORT_CIRCUIT,应该满足circuitBreaker.requestVolumeThreshold。
默认值为20,在我的示例中,滚动窗口中的失败次数不超过20。所以短路从来没发生过。下面是我从另一个堆栈流响应中获得的文档
在持续时间间隔(
metrics.rollingStats.timeInMilliseconds)的时间段内,导致处理异常的动作百分比超过errorThresholdPercentage,条件是时间范围内通过电路的动作至少为requestVolumeThreshold。
我将circuitBreaker.requestVolumeThreshold设置为1,它按预期工作。
https://stackoverflow.com/questions/41644504
复制相似问题