SpringCloud-Alibaba之Sentinel热点参数限流

在Sentinel控制台簇点链路里面多了个hot资源名

热点规则

我们来设置一下hot的热点规则[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wAWET9EC-1648374005672)(https://upload-images.jianshu.io/upload_images/15590149-c8d6d38b2b41bafc?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

限流模式只有QPS模式(这才叫热点)。

参数索引代表@SentinelResource注解的方法参数,0代表第一个参数,1代表第二个参数。

单机阀值以及统计窗口时长表示在此窗口时间超过阀值就限流。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMdfqYjm-1648374005673)(https://upload-images.jianshu.io/upload_images/15590149-3a5914d4fb6c9760?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

上图的含义就是第一个参数有值的话,1秒的QPS为1,超过就限流[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VdNqwHRp-1648374005674)(https://upload-images.jianshu.io/upload_images/15590149-d57a37bc44d4c3fa?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

上面请求/test-hot是带上了第一个参数a,触发了热点限流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iAj4CVAH-1648374005674)(https://upload-images.jianshu.io/upload_images/15590149-6e793ba74de31ce4?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

上面请求/test-hot带上了第二个参数b,没有第一个参数a,不触发热点限流

特定参数

上文中我们配置了针对参数索引的热点限流,有时候我们需要对参数的值做一些特殊的规格;如:上文表示了请求地址如果有参数a,就触发热点限流QPS为1。

但有业务需要参数a=5时,QPS要放大(即业务需要a=5时,阀值调大点,如:100);应用的场景某些秒杀商品,分配给他们大点的QPS。那怎么设置?

Sentinel控制台要在热点规则那边,点击编辑按钮[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vyzM37d5-1648374005675)(https://upload-images.jianshu.io/upload_images/15590149-7d2d7d99d81e546e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

参数例外项:上图配置的含义就是hot资源名配置了第一个参数进行热点限流,阀值为1;但第一参数值为5时,限流阀值变为100。

注意参数的类型要跟方法中的参数一致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-esboKltW-1648374005675)(https://upload-images.jianshu.io/upload_images/15590149-4f72aaa111ac8855?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

测试验证了参数值为5时,阀值变大了。

适用场景

热点参数其实说白了就是特殊的流控,流控设置是针对整个请求的;但是热点参数他可以设置到具体哪个参数,甚至参数针对的值,这样更灵活的进行流控管理。

一般应用在某些特殊资源的特殊处理,如:某些商品流量大,其他商品流量很正常,就可以利用热点参数限流的方案。

注意点

热点参数的注意点,参数必须是基本类型或者String

也就是方法体上面的参数必须为基本类型或String

总结

热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4aZpg8C3-1648374005676)(https://upload-images.jianshu.io/upload_images/15590149-6cf5a5fb6f544bde?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

Sentinel 利用 LRU 策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。

今天老顾就介绍到这里,谢谢!!!

如果喜欢本文,可以关注我们的官方账号,第一时间获取资讯。
你的关注是对我们更新最大的动力哦~

今日福利(点击下方文字超链接获取)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAos0kC1-1648374005677)(https://upload-images.jianshu.io/upload_images/15590149-7658127efb6ff01d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DRhK55QX-1648374005677)(https://upload-images.jianshu.io/upload_images/15590149-a7c2193d21a4b75c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PQRJCylT-1648374005678)(https://upload-images.jianshu.io/upload_images/15590149-98f64dde034b83c3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxhoxIry-1648374005678)(https://upload-images.jianshu.io/upload_images/15590149-e1a79a90464355cf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

如果你的技术提升遇到瓶颈了,或者缺高级Android进阶视频学习提升自己,这有大量大厂面试题为你面试做准备!
点击[Android 学习,面试文档,视频收集大整理](()获取

oid进阶视频学习提升自己,这有大量大厂面试题为你面试做准备!
点击[Android 学习,面试文档,视频收集大整理](()获取


版权声明:本文为www2252原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。