首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Sentinel热点参数规则说明

Sentinel热点参数规则说明

作者头像
瓜农老梁
发布2020-12-14 14:46:12
发布2020-12-14 14:46:12
1.6K00
代码可运行
举报
文章被收录于专栏:瓜农老梁瓜农老梁
运行总次数:0
代码可运行

前言

当经常访问的数据过热时,可以对其访问进行限流。例如:针对一段时间内的特定的用户、城市等进行限制。可以优先用于redis热点key的限流中。

另:本文只做规则说明,实战时可做参考,源码解析部分详见:

Sentinel热点参数如何限流【原理源码】

一、参数说明

热点参数限流由规则ParamFlowRule负责,下面看下各个属性的含义。

参数

说明

resource

必填项,资源名称

limitApp

授权使用限制来源方,默认default

grade

0:线程数(客户端并发控制)1:QPS(默认)

paramIdx

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

count

必填项,限流阈值

controlBehavior

0:直接拒绝(默认)2:匀速通过

maxQueueingTimeMs

当controlBehavior=2时,排队等待时间

burstCount

应对突发流量额外允许的数量

durationInSec

统计窗口时间长度,默认1秒

paramFlowItemList

额外选项,针对特定的参数单独限流

clusterMode

是否为集群模式,默认false

clusterConfig

集群限流配置

二、参数格式

1.不带额外项JSON格式

代码语言:javascript
代码运行次数:0
运行
复制
[
    {
        "burstCount": 0,
        "clusterMode": false,
        "controlBehavior": 0,
        "count": 5,
        "durationInSec": 1,
        "grade": 1,
        "limitApp": "default",
        "maxQueueingTimeMs": 0,
        "paramFlowItemList": [],
        "paramIdx": 0,
        "resource": "resA"
    }
]

2.带额外项JSON格式

代码语言:javascript
代码运行次数:0
运行
复制
[
    {
        "burstCount": 0,
        "clusterMode": false,
        "controlBehavior": 0,
        "count": 5,
        "durationInSec": 1,
        "grade": 1,
        "limitApp": "default",
        "maxQueueingTimeMs": 0,
        "paramFlowItemList": [
            {
                "classType": "int",
                "count": 10,
                "object": "2"
            }
        ],
        "paramIdx": 0,
        "resource": "resA"
    }
]

三、使用方式

注意:exit的时候也一定要带上对应的参数(exit(count, args)),否则可能会有统计错误

代码语言:javascript
代码运行次数:0
运行
复制
Entry entry = null;
try {
    entry = SphU.entry(resourceName, EntryType.IN, 1, paramA, paramB);
    // 业务逻辑
} catch (BlockException ex) {
    // 发送流控
} finally {
    if (entry != null) {
        entry.exit(1, paramA, paramB);
    }
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜农老梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档