统计信息的配置 Metrics
1、metrics.rollingStats.timeInMilliseconds
此属性设置统计滚动窗口的持续时间,以毫秒为单位。默认是10000,10秒。
第一次配置的时候生效,只有配置都不生效,避免度量数据的消失。
2、metrics.rollingStats.numBuckets
统计窗口的Buckets的数量,默认:10个,每秒一个Buckets统计
这个值会在初始化的时候确定,之后都不可以改动。
这里要注意
metrics.rollingStats.timeInMilliseconds % metrics.rollingStats.numBuckets == 0
如果不为零,则抛出异常。
换句话说,10000 / 10是好的,10000 / 20是好的,10000 / 7是不可以的。
================= **** 重要 **** =====================
我理解上面两个参数是程序内部运行的统计数据,这个数据跟断路器息息相关,
下面这个几个参数只是跟监控程序有关,与运行无关。
目前我是这么理解的,不晓得对不对
================= **** 重要 **** =====================
3、metrics.rollingPercentile.enabled
是否开启监控统计功能,默认:true
4、metrics.rollingPercentile.timeInMilliseconds
监控统计的时间间隔,默认是60000秒,初始化的时候生效。
5、metrics.rollingPercentile.numBuckets
bucket的数量,初始化的时候生效,
metrics.rollingPercentile.timeInMilliseconds % metrics.rollingPercentile.numBuckets == 0
如果不为零,则抛出异常。
换句话说,10000 / 10是好的,10000 / 20是好的,10000 / 7是不可以的。
6、metrics.rollingPercentile.bucketSize
这个参数没搞太清楚,大概就是说每个bucket最大能保存多少数据
这个参数是初始化的时候设置的,后面修改将不起作用。
另外,默认是100个,如果增加,则会增加内存的消耗以及计算的cpu消耗。
7、metrics.healthSnapshot.intervalInMilliseconds
采样时间间隔 default 500
熔断器(Circuit Breaker)配置
Circuit Breaker配置源码在HystrixCommandProperties,构造Command时通过Setter进行配置,每种依赖使用一个Circuit Breaker
- // 熔断器在整个统计时间内是否开启的阀值,默认20秒。也就是10秒钟内至少请求20次,熔断器才发挥起作用
- private final HystrixProperty<Integer> circuitBreakerRequestVolumeThreshold;
- //熔断器默认工作时间,默认:5秒.熔断器中断请求5秒后会进入半打开状态,放部分流量过去重试
- private final HystrixProperty<Integer> circuitBreakerSleepWindowInMilliseconds;
- //是否启用熔断器,默认true. 启动
- private final HystrixProperty<Boolean> circuitBreakerEnabled;
- //默认:50%。当出错率超过50%后熔断器启动.
- private final HystrixProperty<Integer> circuitBreakerErrorThresholdPercentage;
- //是否强制开启熔断器阻断所有请求,默认:false,不开启
- private final HystrixProperty<Boolean> circuitBreakerForceOpen;
- //是否允许熔断器忽略错误,默认false, 不开启
- private final HystrixProperty<Boolean> circuitBreakerForceClosed;