Alibaba Sentinel 规则参数总结

一、流控规则

1.1 配置

流控规则

1.2 参数

Field说明默认值
resource资源名,资源名是限流规则的作用对象 
count限流阈值 
grade限流阈值类型,QPS 或线程数模式QPS 模式
limitApp流控针对的调用来源default,代表不区分调用来源
strategy判断的根据是资源自身,还是根据其它关联资源 (refResource),还是根据链路入口根据资源本身
controlBehavior流控效果(直接拒绝 / 排队等待 / 慢启动模式)直接拒绝

1.3 代码配置示例

private void initFlowQpsRule() {
    List<FlowRule> rules = new ArrayList<>();
    FlowRule rule = new FlowRule(resourceName);
    // set limit qps to 20
    rule.setCount(20);
    rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
    rule.setLimitApp("default");
    rules.add(rule);
    FlowRuleManager.loadRules(rules);
}

1.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#流量控制规则-flowrule

1.5 参考:流量控制

二、降级规则

2.1 配置

降级规则

2.2 参数

Field说明默认值
resource资源名,即限流规则的作用对象 
count阈值 
grade降级模式,根据 RT 降级还是根据异常比例降级RT
timeWindow降级的时间,单位为 s 

2.3 代码配置示例

private void initDegradeRule() {
    List<DegradeRule> rules = new ArrayList<>();
    DegradeRule rule = new DegradeRule();
    rule.setResource(KEY);
    // set threshold RT, 10 ms
    rule.setCount(10);
    rule.setGrade(RuleConstant.DEGRADE_GRADE_RT);
    rule.setTimeWindow(10);
    rules.add(rule);
    DegradeRuleManager.loadRules(rules);
}

2.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#熔断降级规则-degraderule

三、热点规则

3.1 配置

热点规则

3.2 参数

属性说明默认值
resource资源名,必填 
count限流阈值,必填 
grade限流模式QPS 模式
durationInSec统计窗口时间长度(单位为秒),1.6.0 版本开始支持1s
controlBehavior流控效果(支持快速失败和匀速排队模式),1.6.0 版本开始支持快速失败
maxQueueingTimeMs最大排队等待时长(仅在匀速排队模式生效),1.6.0 版本开始支持0ms
paramIdx热点参数的索引,必填,对应 SphU.entry(xxx, args) 中的参数索引位置 
paramFlowItemList参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面 count 阈值的限制。仅支持基本类型 
clusterMode是否是集群参数流控规则false
clusterConfig集群流控相关配置 

3.3 代码配置示例

ParamFlowRule rule = new ParamFlowRule(resourceName)
    .setParamIdx(0)
    .setCount(5);
// 针对 int 类型的参数 PARAM_B,单独设置限流 QPS 阈值为 10,而不是全局的阈值 5.
ParamFlowItem item = new ParamFlowItem().setObject(String.valueOf(PARAM_B))
    .setClassType(int.class.getName())
    .setCount(10);
rule.setParamFlowItemList(Collections.singletonList(item));

ParamFlowRuleManager.loadRules(Collections.singletonList(rule));

3.4 参考:https://github.com/alibaba/Sentinel/wiki/热点参数限流

四、系统规则

4.1 配置

系统规则

4.2 参数

Field说明默认值
highestSystemLoad最大的 load1-1 (不生效)
avgRt所有入口流量的平均响应时间-1 (不生效)
maxThread入口流量的最大并发数-1 (不生效)
qps所有入口资源的 QPS-1 (不生效)

4.3 代码配置示例

private void initSystemRule() {
    List<SystemRule> rules = new ArrayList<>();
    SystemRule rule = new SystemRule();
    rule.setHighestSystemLoad(10);
    rules.add(rule);
    SystemRuleManager.loadRules(rules);
}

4.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#系统保护规则-systemrule

五、授权规则

5.1 配置

授权规则

5.2 参数

Field说明默认值
resource资源名,即限流规则的作用对象-
limitApp对应的黑名单/白名单,不同 origin 用 , 分隔,如 appA,appBdefault,代表不区分调用来源
strategy限制模式,AUTHORITY_WHITE 为白名单模式,AUTHORITY_BLACK 为黑名单模式,默认为白名单模式AUTHORITY_WHITE

5.3 代码配置示例

AuthorityRule rule = new AuthorityRule();
rule.setResource("test");
rule.setStrategy(RuleConstant.AUTHORITY_WHITE);
rule.setLimitApp("appA,appB");
AuthorityRuleManager.loadRules(Collections.singletonList(rule));

5.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#访问控制规则-authorityrule

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值