RequestVolumeThreshold

  1. HystrixCommandProperties.Setter()
  2. .withCircuitBreakerRequestVolumeThreshold(int)

Hystrix经过断路器的流量超过了一定阈值,才可能出发断路。比如,要求在10s内经过断路器的流量必须达到20个,而实际经过断路器的流量才10个,那么就不会去判断是否需要断路。

ErrorThresholdPercentage

  1. HystrixCommandProperties.Setter()
  2. .withCircuitBreakerErrorThresholdPercentage(int)

表示异常比例达到多少,才会触发断路,默认值是 50(%)。
如果断路器统计到的异常调用的占比超过了一定的阈值,比如说在 10s 内,经过断路器的流量达到了 30 个,同时其中异常访问的数量也达到了一定的比例,比如 60% 的请求都是异常(报错 / 超时 / reject),就会开启断路。

SleepWindowInMilliseconds

  1. HystrixCommandProperties.Setter()
  2. .withCircuitBreakerSleepWindowInMilliseconds(int)

断路开启,也就是由 close 转换到 open 状态(close -> open)。那么之后在 SleepWindowInMilliseconds 时间内,所有经过该断路器的请求全部都会被断路,不调用后端服务,直接走 fallback 降级机制。
而在该参数时间过后,断路器会变为 half-open 半开闭状态,尝试让一条请求经过断路器,看能不能正常调用。如果调用成功了,那么就自动恢复,断路器转为 close 状态。

Enabled

  1. HystrixCommandProperties.Setter()
  2. .withCircuitBreakerEnabled(boolean)

控制是否允许断路器工作,包括跟踪依赖服务调用的健康状况,以及对异常情况过多时是否允许触发断路。默认值是 true。

ForceOpen

  1. HystrixCommandProperties.Setter()
  2. .withCircuitBreakerForceOpen(boolean)

如果设置为 true 的话,直接强迫打开断路器,相当于是手动断路了,手动降级,默认值是 false。

ForceClosed

  1. HystrixCommandProperties.Setter()
  2. .withCircuitBreakerForceClosed(boolean)

如果设置为 true,直接强迫关闭断路器,相当于手动停止断路了,手动升级,默认值是 false。