SpringCloud Alibaba学习(八):Sentinel的热点规则
如果不知道如何配置sentinel或者不知道如何打开文章中的一些网页,可以参考我前面的文章: SpringCloud Alibaba学习(五):Sentinel的介绍与搭建
一、热点是什么
热点即经常访问的数据,很多时候我们希望统计或者限制某个热点数据中访问频次最高的TopN数据,并对其访问进行限流或者其它操作 。
官网:
https://github.com/alibaba/Sentinel/wiki/%E7%83%AD%E7%82%B9%E5%8F%82%E6%95%B0%E9%99%90%E6%B5%81
二、配置方法
1、sentinel dashboard中
2、8401的controller中:
@SentinelResource注解在下一篇文章中会讲到,这里可以把它理解为@HystrixCommand,参考文章:SpringCloud学习(十四):Hystrix的服务熔断实现
@GetMapping("/testHotKey") @SentinelResource(value = "testHotKey", blockHandler = "deal_testHotKey") //blockHandler指定兜底方法 // value可以写任意值,一般和rest路径保持一致 public String testHotKey(@RequestParam(value = "p1", required = false) String p1, @RequestParam(value = "p2", required = false) String p2){ return "------testHotKey"; } public String deal_testHotKey(String p1, String p2, BlockException exception){ return "------deal_testHotKey"; }
三、测试
浏览器访问testHotKey,只要带上参数p1,在一秒内访问两次以上,就会限流。
而将代码中的blockHandler去掉后,在一秒内访问两次以上,会直接报错 。这样将异常显示到了用户界面,不够友好。
四、结论
限流模式只支持QPS模式,也只有QPS模式下才叫热点。
配置的参数索引是@SentinelResource注解的方法参数索引,0代表第一个参数,1代表第二个参数,以此类推;
单机阀值以及统计窗口时长表示在此窗口时间超过阀值就限流。
上例中,我们将参数索引指定为0,所以当访问路径带上第一个参数p1时,在一秒(统计窗口时长)内访问超过一次(单机阈值)就可能发生限流。
限流时会调用我们配置的blockHandler中的方法,给用户返回一个较为友好的提示,而不是报错的界面。
五、参数例外项
1、是什么
在上例中,如果我们访问带上参数p1,则一秒访问超过一次会被限流。那么,假如我们期望当p1参数是某个特殊值时,它的限流值和平时不一样,这时该如何配置呢?
2、配置方法
当p1参数为5时,限流阈值为200。
3、测试
如果访问时p1的值不为5,那么一秒内超过一次就会限流;而如果p1=5,则狂点鼠标也不会限流(达不到每秒200次访问,不知道有没有大佬的手能达到)。
六、注意
@SentinelResource 处理的是Sentinel控制台配置的违规情况,有blockHandler方法配置的兜底处理;而像RuntimeException这样的异常(比如int age = 10/0)是java运行时报出的运行时异常,@SentinelResource并不处理。
那么如果报出了这样的异常该怎么处理能够让用户体验更为友好呢?这就是我们后面要说到的内容。
相关文章
- 发现 Linux SpaceFM 文件管理器的威力
- 夯实数据智能底座 共筑数字经济发展“新基石”
- 五分钟教你使用console.log发布公司的招聘信息
- 微软发布 Windows 11 Beta 预览版 Build 22621.1250 和 22623.1250 (KB5023008)
- Windows 11 学院:在 Windows 11 Build 25290 上如何为文件管理器启用标签页拖拽支持
- 微软Windows 11 Dev 预览版 Build 25290 发布:带来新的开始菜单提醒角标
- 微软正用全屏通知提醒 Windows 10 用户免费升级 Windows 11,要点击 5 次才能退出
- Linux Mint 21.2 将于 6 月发布:改进登录屏幕,优化 Pix 图像管理程序等等
- 字节面试也会问SPI机制?
- 微软正式停售 Windows 10 产品密钥 / 许可证:继续提供 ISO 镜像下载,推荐用户升级 Windows 11
- 用复古电脑程序 Toy CPU 学习低级编程
- Windows 11 新功能泄露:现代音量合成器、实验工具和新的文件管理器
- 微软 Windows 11 文件资源管理器全新设计曝光:UI 迎来大修,整合 Microsoft 365
- 对比Pandas,学习PySpark大数据处理
- 微软宣布为Windows 11 21H2设备开启自动更新到22H2版本
- 互联网都在说降本增效,小红书技术团队是怎么做的?
- 微软将继续提供 Windows 10 ISO 镜像下载,即将停售产品密钥 / 许可证
- 微软宣布为Windows 11 21H2 设备开启自动更新到 22H2 版本
- 面试突击:Properties和Yml有什么区别?
- 微软 Windows 11 Beta 预览版 22621.1245 和 22623.1245 (KB5022358) 发布