SpringCloud Alibaba Sentinel实现熔断与限流-微服务(三十二)

导读:本篇文章讲解 SpringCloud Alibaba Sentinel实现熔断与限流-微服务(三十二),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

热点key限流

基本介绍

是什么

何为热点
热点即经常访问的数据,很多时候我们希望统计或者限制某个热点数据中访问频次最高的TopN数据,并对其访问进行限流或者其它操作

官网

承上启下复习start

兜底方法
分为系统默认和客户自定义,两种

之前的case,限流出问题后,都是用sentinel系统默认的提示:Blocked by Sentinel (flow limiting)

我们能不能自定?类似hystrix,某个方法出问题了,就找对应的兜底降级方法?

结论
从HystrixCommand 到@SentinelResource

 @SentinelResource

代码

com.alibaba.csp.sentinel.slots.block.BlockException
@GetMapping("/testHotKey")
@SentinelResource(value = "testHotKey",blockHandler = "dealHandler_testHotKey")
public String testHotKey(@RequestParam(value = "p1",required = false) String p1, 
                         @RequestParam(value = "p2",required = false) String p2){
    return "------testHotKey";
}
public String dealHandler_testHotKey(String p1,String p2,BlockException exception)
{
    return "-----dealHandler_testHotKey";
}
 
 
 sentinel系统默认的提示:Blocked by Sentinel (flow limiting)

配置

在这里插入图片描述

限流模式只支持QPS模式,固定写死了。(这才叫热点)
@SentinelResource注解的方法参数索引,0代表第一个参数,1代表第二个参数,以此类推
单机阀值以及统计窗口时长表示在此窗口时间超过阀值就限流。
上面的抓图就是第一个参数有值的话,1秒的QPS为1,超过就限流,限流后调用dealHandler_testHotKey支持方法。

配置

在这里插入图片描述

  • 异常打到了前台用户界面看到,不友好
@SentinelResource(value = "testHotKey")
  • 方法testHotKey里面第一个参数只要QPS超过每秒1次,马上降级处理
  • 用了我们自己定义的
@SentinelResource(value = "testHotKey",blockHandler = "dealHandler_testHotKey")

测试

error

http://localhost:8401/testHotKey?p1=abc

error

http://localhost:8401/testHotKey?p1=abc&p2=33

right

http://localhost:8401/testHotKey?p2=abc

参数例外项

上述案例演示了第一个参数p1,当QPS超过1秒1次点击后马上被限流

特例情况

  • 普通 超过1秒钟一个后,达到阈值1后马上被限流
  • 我们期望p1参数当它是某个特殊值时,它的限流值和平时不一样
  • 特例 假如当p1的值等于5时,它的阈值可以达到200

配置

在这里插入图片描述
在这里插入图片描述

测试

http://localhost:8401/testHotKey?p1=5
http://localhost:8401/testHotKey?p1=3
当p1等于5的时候,阈值变为200
当p1不等于5的时候,阈值就是平常的1

前提条件

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

其它

 
@SentinelResource
处理的是Sentinel控制台配置的违规情况,有blockHandler方法配置的兜底处理;
 
 
RuntimeException
int age = 10/0,这个是java运行时报出的运行时异常RunTimeException@SentinelResource不管
 
 
总结
 @SentinelResource主管配置出错,运行出错该走异常走异常

系统规则

是什么

官网

各项配置参数说明

在这里插入图片描述

配置全局QPS

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

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

(0)
小半的头像小半

相关推荐

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