Alibaba Sentinel 规则参数总结

一、流控规则

1.1 配置

 

1.2 参数

Field说明默认值
resource资源名称 
count限流阈值 
grade限流阈值类型:0 表示线程数,1表示QPSQPS 模式
limitApp流控针对的调用来源default,代表不区分调用来源
strategy流控模式: 0表是直接,1表示关联,2表示链路根据资源本身
controlBehavior流控效果(0快速失败 / 1warn up/ 2排队等待)直接拒绝

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/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6

1.5 参考:流量控制

二、降级规则

2.1 配置

降级规则

2.2 参数

Field说明默认值
resource资源名,即限流规则的作用对象 
count阈值 
grade熔断策略,支持秒级 RT/秒级异常比例/分钟级异常数秒级平均 RT
timeWindow降级的时间,单位为 s 
rtSlowRequestAmountRT 模式下 1 秒内连续多少个请求的平均 RT 超出阈值方可触发熔断(1.7.0 引入)5
minRequestAmount异常熔断的触发最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断(1.7.0 引入)5

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 参考:

三、热点规则

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));


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值