spring cloud hystrix 配置属性大全

  • 以下的属性都是spring cloud 1.5.9版本的。

commandProperties

  • execution.isolation.strategy
    使用命令调用的隔离模式,默认采用线程隔离
  • execution.isolation.thread.timeoutInMilliseconds
    一个命令执行的超时时间,以毫秒为单位,默认是1s
  • execution.timeout.enabled
    是否开启超时触发,默认是开启
  • execution.isolation.thread.interruptOnTimeout
    使用线程隔离时,当命令超时时是否对命令所在线程执行中断操作,默认为true,只会中断线程处于阻塞状态(如sleep,wait,join等状态),正常运行的线程都不会中断
  • execution.isolation.thread.interruptOnFutureCancel
    使用线程隔离时,当Future取消时是否对命令所在线程执行中断操作,默认为false
  • execution.isolation.semaphore.maxConcurrentRequests
    使用信号量隔离时,命令调用最大的并发数,默认为10个
  • fallback.enabled
    是否开启fallback降级策略,默认为true
  • fallback.isolation.semaphore.maxConcurrentRequests
    使用信号量隔离时,命令fallback调用的最大并发数,默认为10个
  • metrics.rollingStats.timeInMilliseconds
    统计滚动窗口的时间,默认为10s(并且默认滚动窗口的桶数量为10个,所以一个桶一秒钟),熔断器会使用这个时间
  • metrics.rollingStats.numBuckets
    统计窗口的桶数量,默认为10个,所以在一个10s的统计窗口中一个桶1秒钟
  • metrics.rollingPercentile.enabled
    是否开启监控统计功能,计算各个百分比(SLA),默认为true
  • metrics.rollingPercentile.timeInMilliseconds
    滚动百分比的统计时间,默认为60000即1分钟,1分钟统计一次
  • metrics.rollingPercentile.numBuckets
    滚动百分比的桶数量,默认为6个,(在60s的窗口中10秒钟一个桶)
  • metrics.rollingPercentile.bucketSize
    每一个百分比窗口桶可以存放值得数量,默认为100即每个桶都多可以放100个值
  • metrics.healthSnapshot.intervalInMilliseconds
    健康快照之间的间隔时间,默认为500ms(错误百分比等统计)
  • circuitBreaker.requestVolumeThreshold
    一个滚动窗口内触发熔断的最少请求数,默认是20个。滚动窗口时间取自(metrics.rollingStats.timeInMilliseconds),默认10s内至少请求20次,熔断才发挥作用。
  • circuitBreaker.sleepWindowInMilliseconds
    触发熔断之后(拒绝请求),多长时间开始重新尝试执行,默认是5000ms。步骤如下:熔断器中断请求5秒后会进入半打开状态,放下一个请求进来重试,如果该请求成功就关闭熔断器,否则继续等待一个熔断时间窗口
  • circuitBreaker.enabled
    是否启用熔断器,默认是启用
  • circuitBreaker.errorThresholdPercentage
    设置启动熔断的错误或者延迟的比例,默认是50%。在一个滚动窗口(默认10s)如果超过50%的请求发生错误或者延迟,则触发熔断器,前提是circuitBreaker.requestVolumeThreshold条件满足
  • circuitBreaker.forceOpen
    是否强制开启熔断器,默认为false,开启之后所有请求全部拒绝,直接fallback
  • circuitBreaker.forceClosed
    是否强制关闭熔断器,默认为false,开启之后不能熔断
  • requestLog.enabled
    hystrix执行的日志是否打印,默认为true
  • requestCache.enabled
    是都缓存请求,request-scope缓存,默认为true

threadPoolProperties

  • coreSize
    设置线程池的大小,默认为10,也就是说最大并发为10
  • maximumSize
    设置线程池打最大值,默认为10,只有allowMaximumSizeToDivergeFromCoreSize
    为true时才生效
  • allowMaximumSizeToDivergeFromCoreSize
    该属性允许配置maximumSize生效,当coreSize小于maximumSize时创建一个最大值为maximumSize并发的线程池,但会在相对不活动期间返回线程到系统(受keepAliveTimeInMinutes控制)
  • keepAliveTimeMinutes
    设置线程保持的时间,以分钟为单位,默认为1分钟,如果coreSize小于maximumSize,那么这个属性控制一个线程在不使用之后多久将被释放
  • maxQueueSize
    该属性设置实现的最大队列大小,默认为-1,-1代表SynchronousQueue将被使用,否则将使用一个正值的LinkedBlockingQueue,这个属性只适用于初始化期间,并且不能更改或者调整,如果修改的话需要重启
  • queueSizeRejectionThreshold
    该属性设置队列大小拒绝阈值,即maxQueueSize还没有达到最大值,此值也能动态响应拒绝队列的大小,当maxQueueSize=-1时此值不起作用
  • metrics.rollingStats.timeInMilliseconds
    该属性设置统计滚动窗口的持续时间,以还秒为单位。这是为线程池保留多长时间的指标,默认为1000ms
  • metrics.rollingStats.numBuckets
    该属性设置滚动统计窗口分成桶的数量,必须能被metrics.rollingStats.timeInMilliseconds整除,默认为10

collapserProperties

  • maxRequestsInBatch 该属性设置批量处理的最大请求数量,默认值为Integer.MAX_VALUE
  • timerDelayInMilliseconds 该属性设置多长时间之内算一次批处理,默认为10ms
  • requestCache.enabled 是都缓存请求,request-scope缓存,默认为true
  • metrics.rollingStats.timeInMilliseconds 统计滚动窗口的时间,默认为10s(并且默认滚动窗口的桶数量为10个,所以一个桶一秒钟)
  • metrics.rollingStats.numBuckets 统计窗口的桶数量,默认为10个,所以在一个10s的统计窗口中一个桶1秒钟
  • metrics.rollingPercentile.enabled 是否开启监控统计功能,计算各个百分比(SLA),默认为true
  • metrics.rollingPercentile.timeInMilliseconds 滚动百分比的统计时间,默认为60000即1分钟,1分钟统计一次
  • metrics.rollingPercentile.numBuckets 滚动百分比的桶数量,默认为6个,(在60s的窗口中10秒钟一个桶)
  • metrics.rollingPercentile.bucketSize 每一个百分比窗口桶可以存放值得数量,默认为100即每个桶都多可以放100个值

本文参考资料:
https://github.com/Netflix/Hystrix/wiki/Configuration

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值