Sentinel之配置熔断降级规则
熔断降级规则-DegradeRule
1.可以通过调用 DegradeRuleManager.loadRules 方法来用硬编码的方式定义熔断降级规则
2.熔断降级规则DegradeRule定义中的重要属性如下
Field | 说明 | 默认值 |
---|---|---|
resource | 资源名,即规则的作用对象 | |
grade | 熔断策略,支持慢调用比例/异常比例/异常数策略 | 慢调用比例 |
count | 慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用);异常比例/异常数模式下为对应的阈值 | |
timeWindow | 熔断时长,单位为 s | |
minRequestAmount | 熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断(1.7.0 引入) | 5 |
statIntervalMs | 统计时长(单位为 ms),如 60*1000 代表分钟级(1.8.0 引入) | 1000 ms |
slowRatioThreshold | 慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入) |
添加熔断降级规则
@PostConstruct
public void initDegradeRule() {
List<DegradeRule> rules = new ArrayList<>();
DegradeRule rule = new DegradeRule();
rule.setResource("driverInfo");
/**
* 设置熔断策略
* DEGRADE_GRADE_RT:平均响应时间[慢调用]
* DEGRADE_GRADE_EXCEPTION_RATIO:异常比例数量
* DEGRADE_GRADE_EXCEPTION_COUNT:异常数
*/
rule.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT);
//设置阈值
rule.setCount(2);
//设置 熔断时长
rule.setTimeWindow(30);
// 统计时长(单位为 ms) 默认1000
rule.setStatIntervalMs(60*1000);
//将规则添加到集合中
rules.add(rule);
DegradeRuleManager.loadRules(rules);
}