Hystrix的HystrixCommand配置参数
@HystrixCommand注解是一个包含@HystrixProperty注解的数组,HystrixProperty 由 name 和 value 两个属性,数据类型都是字符串,下面是所有的HystrixProperty解析,参考官方wiki。
Execution
这些配置决定了,HystrixCommand如何去执行。
-
execution.isolation.strategy
指示使用哪种隔离策略,有两种:thread(线程池,默认)并发请求受到线程池最大线程限制,semaphore(信号量)受到信号量计数的限制,一般使用线程的方式 -
execution.isolation.thread.timeoutInMilliseconds
用于设置超时的时间,单位是毫秒,默认为1s -
execution.timeout.enabled
用于指示是否启用超时,默认为true -
execution.isolation.thread.interruptOnTimeout
是否在服务超时后中断,默认为true,需要注意在 JVM 中我们无法强制中断一个线程,如果 Hystrix 方法里没有处理中断信号的逻辑,那么中断会被忽略。 -
execution.isolation.thread.interruptOnCancel
是否在服务取消后中断,默认为false -
execution.isolation.semaphore.maxConcurrentRequests
设置信号量最大请求数,需要设置execution.isolation.strategy属性为semaphore,默认为10
Fallback 回退
- fallback.isolation.semaphore.maxConcurrentRequests
fallback回退方法时的最大并发量,超出此并发数的请求会抛出REJECTED_SEMAPHORE_FALLBACK异常,默认是10 - fallback.enabled
是否启用fallback方法回退,默认为true
Circuit Breaker 熔断器
熔断器相关配置
- circuitBreaker.enabled
是否开启熔断器,默认为true - circuitBreaker.requestVolumeThreshold
在一定的窗口时间内,打开熔断器的最小请求数,例如设置为20,在10s的窗口中,有19个线程,即使19个线程都失败了,也不会打开熔断器。默认为20 - circuitBreaker.sleepWindowInMilliseconds
熔断器打开后,所有请求都会快速失败,然后过一段时间,Hystrix会放行一个请求,进行测试是否恢复,如果恢复则关闭熔断器。这个属性就是用于指定熔断器开启后过多久会进行一次尝试,默认是5000毫秒 - circuitBreaker.errorThresholdPercentage
设置窗口时间内多少百分比的请求失败会打开熔断器,默认是50,也就是超过50%的失败了才会打开 - circuitBreaker.forceOpen、circuitBreaker.forceClosed
是否强制开启或者强制关闭,默认是false
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
