1.7-Sentinel热点规则

导读:本篇文章讲解 1.7-Sentinel热点规则,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1、基本设置

热点规则指的是对API请求中的热点参数进行限流,当设定限流的参数达到阈值时,执行限流;在TestController控制器中添加一个API端点,并加上@SentinelResource注解,访问地址为 /test/t-hot?a=1&b=2 ,它接受两个参数,方法实现代码如下:

1.7-Sentinel热点规则

在簇点链路中对上述方法添加【+热点】,规则设置如下所示:

1.7-Sentinel热点规则

如上图所示,参数索引 0 表示第一个参数a,当API请求中附带了参数 a 且阈值达到 1 时,请求就会被限流,如果没有附带参数 a 则不会执行限流。

在IDEA中为内容中心的测试控制器添加上述的请求API,重启内容中心后测试热点规则,效果如下所示:

1.7-Sentinel热点规则

当带了参数 a 时会被限流,不带参数 a 时则不会限流。

2、高级选项

通过高级选项可以针对参数的值进行限流,设置规则如下所示:

1.7-Sentinel热点规则

如上图设置的规则,当参数 a=5 时限流的阈值为1000,a≠5时限流的阈值为1,这就是针对参数的值进行限流。

热点规则一般用于热词搜索场景中,比如每年苹果新出手机的那几天iPhone这个词的搜索量就会非常庞大,此时就可以针对这个词做热点规则的限流设置。

另外,热点规则对应的源码类和方法如下所示:com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowChecher#passCheck

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/10440.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!