美文网首页
hystrix配置参考

hystrix配置参考

作者: 内沐 | 来源:发表于2022-03-30 14:50 被阅读0次
@HystrixCommand(
        fallbackMethod = "queryActivityInfoFallBack",
        ignoreExceptions = {BaseKnownException.class},
        commandProperties = {
                //超时时间上限(b端会调促销接口,设置时间稍长些)
                @HystrixProperty(name = EXECUTION_ISOLATION_THREAD_TIMEOUT_IN_MILLISECONDS, value = "4000"),
                //统计滚动窗口的持续时间,以毫秒为单位。
                // 该时间用于断路器判断健康度时需要收集信息的持续时间,断路器在收集指标信息的时候会根据设置的时间窗长度拆分成多个“桶”来累计各个度量值,每个“桶”记录一段时间内的采集指标。)
                @HystrixProperty(name = METRICS_ROLLING_STATS_TIME_IN_MILLISECONDS, value = "10000"),
                //设置在一个滚动窗口中,打开断路器的最少请求数
                @HystrixProperty(name = CIRCUIT_BREAKER_REQUEST_VOLUME_THRESHOLD, value = "50"),
                //在滚动时间窗中,在请求数量超过此阀值的前提下,如果失败比率超过这个值,则把断路器设置为“打开”状态,否则就设置为“关闭”状态
                @HystrixProperty(name = CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE, value = "30"),
                //属性用来设置当断路器打开之后的休眠时间窗
                @HystrixProperty(name = CIRCUIT_BREAKER_SLEEP_WINDOW_IN_MILLISECONDS, value = "1000")
        },
        threadPoolProperties = {
                @HystrixProperty(name = CORE_SIZE, value = "10"),
                @HystrixProperty(name = MAXIMUM_SIZE, value = "10"),
                //是否允许最大线程数生效
                @HystrixProperty(name = ALLOW_MAXIMUM_SIZE_TO_DIVERGE_FROM_CORE_SIZE, value = "true")
        }
)

groupKey的默认值是使用@HystrixCommand标注的方法所在的类名
commandKey的默认值是@HystrixCommand标注的方法名,即每个方法会被当做一个HystrixCommand

threadPoolKey的默认值是groupKey,而groupKey默认值是@HystrixCommand标注的方法所在类名

可以通过在类上加@DefaultProperties( threadPoolKey="xxx" )设置默认的threadPoolKey

可以通过@HystrixCommand( threadPoolKey="xxx" ) 指定当前HystrixCommand实例的threadPoolKey

threadPoolKey用于从线程池缓存中获取线程池 和 初始化创建线程池,由于默认以groupKey即类名为threadPoolKey,那么默认所有在一个类中的HystrixCommand共用一个线程池

参考文档:https://www.cnblogs.com/trust-freedom/p/9956427.html

相关文章

网友评论

      本文标题:hystrix配置参考

      本文链接:https://www.haomeiwen.com/subject/tytwjrtx.html