1. var config = hystrix.CommandConfig{
  2. Timeout: 5000, //执行command的超时时间(毫秒)
  3. MaxConcurrentRequests: 8, //command的最大并发量
  4. SleepWindow: 1000, //过多长时间,熔断器再次检测是否开启。单位毫秒
  5. ErrorPercentThreshold: 30, //错误率 请求数量大于等于RequestVolumeThreshold并且错误率到达这个百分比后就会启动
  6. RequestVolumeThreshold: 5, //请求阈值(一个统计窗口10秒内请求数量) 熔断器是否打开首先要满足这个条件;这里的设置表示至少有5个请求才进行ErrorPercentThreshold错误百分比计算
  7. }

Hystrix默认设置的参数为:

  • DefaultErrorPercentThreshold = 50:请求失败比例达到50%时,断路器切换为Open状态。
  • DefaultTimeout = 1000:请求超过该时间即视为服务异常。我在代码中设置的也是1秒。
  • DefaultSleepWindow = 5000:在Open状态下,间隔5秒进行重试。

熔断器状态

Close关闭转态:允许流量通过
Open打开状态:不允许流量通过,
HALF_OPEN半开转态:允许某些流量通过,如果出现超时,异常等情况进入open转态,如果成功,那么将进入CLOSE转态。

image.png

参考

https://www.cnblogs.com/li-peng/p/11050563.html