Sentinel参数解释

吴书松
吴书松
发布于 2025-05-08 / 9 阅读
1

Sentinel参数解释

1、定义一个流控规则

@Component
public class IotManageSentinelConfig {


    /**
     * 使用代码编写流控规则,(控制台方式暂不支持)
     */
    @PostConstruct
    public void initFlowRule() {
        List<FlowRule> rules = new ArrayList<>();

        //登录短信验证码限流
        FlowRule rule = new FlowRule();
        rule.setResource(IotManageConstant.SENTINEL_NUM_CHECK_BATCH);
        rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
        rule.setCount(1);
        rules.add(rule);


        /* 4.加载限流规则 */
        FlowRuleManager.loadRules(rules);
    }

}

使用:

    @SentinelResource(entryType = EntryType.IN,value = IotManageConstant.SENTINEL_NUM_CHECK_BATCH,blockHandler = "checkNumListHandler")

FlowRule参数解释

  • resource:资源名,资源名是限流规则的作用对象

  • count:限流阈值

  • grade:限流阈值类型,QPS 模式(1)或并发线程数模式(0), 默认QPS 模式,常量:RuleConstant.FLOW_GRADE_QPS

  • limitApp:流控针对的调用来源, 默认default,代表不区分调用来源

  • strategy:调用关系限流策略:直接、链路、关联, 默认根据资源本身(直接)

  • controlBehavior:流控效果(直接拒绝/WarmUp/匀速+排队等待), 默认直接拒绝,常量:RuleConstant.CONTROL_BEHAVIOR_DEFAULT

  • clusterMode:是否集群限流, 默认否

  • durationInSec:统计窗口时间长度(单位为秒),1.6.0 版本开始支持,默认1s

  • maxQueueingTimeMs:最大排队等待时长(仅在匀速排队模式生效),1.6.0 版本开始支持,默认0ms

  • paramIdx:热点参数的索引,必填,对应SphU.entry(xxx, args)中的参数索引位置

  • paramFlowItemList:参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面count阈值的限制。仅支持基本类型和字符串类型

  • clusterConfig:集群流控相关配置