参考文档:Hystrix官方文档
本文对Hystrix的配置参数的覆盖优先级,可配置参数的种类、配置项进行详细的介绍。
Hystrix可以配置属性的有以下类型:
- Command Properties
Execution:控制HystrixCommand.run() 的如何执行
Fallback: 控制HystrixCommand.getFallback() 如何执行
Circuit Breaker: 控制断路器的行为
Metrics: 捕获和HystrixCommand 和 HystrixObservableCommand 执行信息相关的配置属性
Request Context:设置请求上下文的属性 - Collapser Properties:设置请求合并的属性
- Thread Pool Properties:设置线程池的属性
配置参数详解:
1.Execution
(1)execution.isolation.strategy
表示HystrixCommand.run()的执行时的隔离策略,有以下两种策略:
THREAD: 在单独的线程上执行,并发请求受线程池中的线程数限制
SEMAPHORE: 在调用线程上执行,并发请求量受信号量计数限制
(2)设置调用者执行的超时时间(单位毫秒)
默认值:1000
(3)execution.timeout.enabled
表示是否开启超时设置。
2.Fallback
3.Circuit Breaker
(1)circuitBreaker.enabled
是否开启断路器功能
(2) circuitBreaker.sleepWindowInMilliseconds
断路器跳闸后,在此值的时间的内,hystrix会拒绝新的请求,只有过了这个时间断路器才会打开闸门
(3)circuitBreaker.forceOpen
如果设置true,则强制使断路器跳闸,则会拒绝所有的请求.此值会覆盖circuitBreaker.forceClosed的值
(4) circuitBreaker.forceClosed
如果设置true,则强制使断路器进行关闭状态,此时会允许执行所有请求,无论是否失败的次数达到circuitBreaker.errorThresholdPercentage值
4.Metrics
5.Request Context