https://github.com/Netflix/Hystrix/wiki/Configurationgit
Command Properties
Execution
控制HystrixCommand.run()的执行策略
execution.isolation.strategy 执行隔离策略
THREAD 每次在一个线程中执行,并发请求数限制于线程池的线程数
SEMAPHORE 在调用线程中执行,并发请求数限制于semaphore信号量的值
Thread是默认推荐的选择。
execution.isolation.thread.timeoutInMilliseconds
超时时间,默认1000ms
execution.timeout.enabled
是否开启超时,默认true
execution.isolation.thread.interruptOnTimeout
当超时的时候是否中断(interrupt) HystrixCommand.run()执行
Fallback
设置当fallback降级发生时的策略
Circuit Breaker
配置熔断的策略
circuitBreaker.enabled
是否开启熔断,默认true
circuitBreaker.requestVolumeThreshold
设置一个滑动窗口内触发熔断的最少请求量,默认20。例如,若是这个值是20,一个滑动窗口内只有19个请求时,即便19个请求都失败了也不会触发熔断。
circuitBreaker.sleepWindowInMilliseconds
设置触发熔断后,拒绝请求后多长时间开始尝试再次执行。默认5000ms。
circuitBreaker.errorThresholdPercentage
设置触发熔断的错误比例。默认50,即50%。
circuitBreaker.forceOpen
是否强制开启熔断
circuitBreaker.forceClosed
是否强制关闭熔断github
Metrics
设置关于HystrixCommand执行须要的统计信息
metrics.rollingStats.timeInMilliseconds
设置滑动窗口的统计时间。熔断器使用这个时间。
默认10s
metrics.rollingStats.numBuckets
设置滑动统计的桶数量。默认10。metrics.rollingStats.timeInMilliseconds必须能被这个值整除。
metrics.rollingPercentile.enabled
设置执行时间是否被跟踪,而且计算各个百分比,50%,90%等的时间。默认true。
Request Context
设置HystrixCommand使用的HystrixRequestContext相关的属性.
requestCache.enabled
设置是否缓存请求,request-scope内缓存。默认true
requestLog.enabled
设置HystrixCommand执行和事件是否打印到HystrixRequestLog中。
ThreadPool Properties
配置HystrixCommand使用的线程池的属性。
大多数状况下默认的10个线程都是值得建议的。
coreSize
设置线程池的core size,这是最大的并发执行数量。默认10
maxQueueSize
最大队列长度。设置BlockingQueue的最大长度。默认-1。
若是设置成-1,就会使用SynchronizeQueue。
若是其余正整数就会使用LinkedBlockingQueue。
queueSizeRejectionThreshold
设置拒绝请求的临界值。只有maxQueueSize为-1时才有效。
设置设个值的缘由是maxQueueSize值运行时不能改变,咱们能够经过修改这个变量动态修改容许排队的长度。默认5
keepAliveTimeMinutes
设置keep-live时间。默认1分钟
这个通常用不到由于默认corePoolSize和maxPoolSize是同样的。缓存