var config = hystrix.CommandConfig{
Timeout: 5000, //执行command的超时时间(毫秒)
MaxConcurrentRequests: 8, //command的最大并发量
SleepWindow: 1000, //过多长时间,熔断器再次检测是否开启。单位毫秒
ErrorPercentThreshold: 30, //错误率 请求数量大于等于RequestVolumeThreshold并且错误率到达这个百分比后就会启动
RequestVolumeThreshold: 5, //请求阈值(一个统计窗口10秒内请求数量) 熔断器是否打开首先要满足这个条件;这里的设置表示至少有5个请求才进行ErrorPercentThreshold错误百分比计算
}
Hystrix默认设置的参数为:
- DefaultErrorPercentThreshold = 50:请求失败比例达到50%时,断路器切换为Open状态。
- DefaultTimeout = 1000:请求超过该时间即视为服务异常。我在代码中设置的也是1秒。
- DefaultSleepWindow = 5000:在Open状态下,间隔5秒进行重试。
熔断器状态
Close关闭转态:允许流量通过
Open打开状态:不允许流量通过,
HALF_OPEN半开转态:允许某些流量通过,如果出现超时,异常等情况进入open转态,如果成功,那么将进入CLOSE转态。