1、基本设置
热点规则指的是对API请求中的热点参数进行限流,当设定限流的参数达到阈值时,执行限流;在TestController控制器中添加一个API端点,并加上@SentinelResource注解,访问地址为 /test/t-hot?a=1&b=2 ,它接受两个参数,方法实现代码如下:
在簇点链路中对上述方法添加【+热点】,规则设置如下所示:
如上图所示,参数索引 0 表示第一个参数a,当API请求中附带了参数 a 且阈值达到 1 时,请求就会被限流,如果没有附带参数 a 则不会执行限流。
在IDEA中为内容中心的测试控制器添加上述的请求API,重启内容中心后测试热点规则,效果如下所示:
当带了参数 a 时会被限流,不带参数 a 时则不会限流。
2、高级选项
通过高级选项可以针对参数的值进行限流,设置规则如下所示:
如上图设置的规则,当参数 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