Command属性主要用来控制HystrixCommand命令的行为
主要有五种不同类型的属性配置
1. execution配置
execution配置控制的是HystrixCommand.run()的执行
** execution.isolation.thread.timeoutInMilliseconds: 该属性用来配置HystrixCommand执行的超时时间,单位为毫秒。
当HystrixCommand执行的时间超过该配置值之后,Hystrix会将该执行命令标记为 TIMEOUT 并进入服务降级处理逻辑
全局默认值:1000毫秒
实例配置属性:hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds
实例默认值: @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value="2000") 注解来设置
设置为 2000 毫秒
2.circuitBreaker配置
@HystrixProperty(name="circuitBreaker.requestVolumeThreshold", value="30")
该属性用来设置在滚动时间窗中,断路器熔断的最小请求数,比如设置为30,那么即使收到29个请求且请求都失败了,断路器也不会打开
circuitBreaker.sleepWindowInMilliseconds: 使用方法同上
该属性用来设置当断路器打开之后的休眠时间窗,休眠时间窗结束后,会将断路器置为"半开"状态,尝试熔断的请求命令,若依然失败则设置为"打开"状态,否则为"关闭"状态
circuitBreaker.errorThresholdPercentage: 使用方法同上
设置断路器打开的错误百分比条件,默认为50
circuitBreaker.forceOpen:
强制断路器为"打开"状态,默认为false
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:
设置API网关中路由转发请求的 HystrixCommand 执行超时时间