参数详解
execution.isolation.strategy
THREAD,SEMAPHORE ,默认为线程隔离策略,强烈建议使用线程隔离策略,线程策略可以避免网络超时带来的请求延时。针对没有网络请求和每秒有大量请求,并且每个请求线程的负载较高的情况下,可以使用信号量策略。信号量执行策略没有超时检查。
execution.isolation.thread.timeoutInMilliseconds
隔离线程执行超时时间,默认为1000ms。超时则执行fallback。
execution.timeout.enabled
是否执行线程执行超时检查,默认为true
execution.isolation.thread.interruptOnTimeout
线程执行超时,是否中断执行run
execution.isolation.thread.interruptOnCancel
线程执行请求取消是,是否中断线程,默认为false。
execution.isolation.semaphore.maxConcurrentRequests
信号量执行策略下,允许的并发请求数,默认为10/s,理论上讲,应该是为容器线程池的线程数,从隔离的原则上来说,建议为线程池数量的小部分。官方给出的参考为,内存级的度量数据请求,2个信号量,可以处理5000rps Fallback 此配置使用线程和信号量两种隔离策略
fallback.isolation.semaphore.maxConcurrentRequests
同时降级的最大并发量,默认为10
fallback.enabled
执行失败,或拒绝执行发生时,是否调用降级方法,默认为true,false,则抛出Hystrix运行时异常 Circuit Breaker
circuitBreaker.enabled
针对请求处理失败,是否短路,追踪应用健康状况
circuitBreaker.requestVolumeThreshold
在一个滑动窗口内,开启熔断器检查统计条件,默认为20/10s。需要注意,如果在十秒内,有19个请求,都出现错误,也不会,触发熔断。
circuitBreaker.sleepWindowInMilliseconds
触发熔断器后,等待关闭熔断器的时间,默认为5000s。
circuitBreaker.errorThresholdPercentage
在一个统计窗口内,达到错误百分比时,触发熔断,默认为50%,主要看我们对错误民不敏感,如果敏感可以设置10%。
circuitBreake