15.2.2 管理断路器阈值
默认情况下,如果断路器保护的方法被调用超过 20 次,如果超过 50% 的调用在 10 秒钟内失败,那么断路器将进入断开状态。所有后续调用都将由降级方法处理。经过 5 秒后,断路器进入半开状态,原方法将被再次尝试。
您可以通过设置 Hystrix 命令属性来调整失败和重试阈值。以下命令属性会影响断路器:
circuitBreaker.requestVolumeThreshold
——在给定的时间段内,方法应该被调用的次数。circuitBreaker.errorThresholdPercentage
——给定时间段内,失败方法所占的百分比。metrics.rollingStats.timeInMilliseconds
——考虑请求量和错误百分比的滚动时间段。circuitBreaker.sleepWindowInMilliseconds
——断开状态持续多长时间进入半打开状态,以再次尝试调用原始失败方法。
在 metrics.rollingState.timeInMilliseconds
中指定的时间段内,如果 circuitBreaker.requestVolumeThreshold
和 circuitBreaker.errorThresholdPercentage
同时超过阈值,则断路器进入断开状态。在 circuitBreaker.sleepWindowInMilliseconds
指定的时间内保持断开状态。之后将变为半开状态,并再一次尝试最初的失败方法。
例如,假设要调整失败设置,方法的调用次数必须超过 30 次,并且在 20 秒内有超过 25% 的请求失败才触发。需要设置以下 Hystrix 命令属性:
此外,如果您决定一旦断开,断路器必须保持断开状态最多 1 分钟,然后转为半开状态,您可以这样设置 circuitBreaker.sleepWindowInMilliseconds
命令属性:
除了优雅地处理方法失败和延迟之外,Hystrix 还发布了应用程序中每个断路器的度量流。下一步,让我们看一看如何通过 Hystrix 流,来监控使用 Hystrix 的应用程序的健康状况。
最后更新于