本文是针对热点规则进行配置
这个就是热点规则的界面,这个是限流规则中非常常用和实用的点, 热点参数限流
其实也就是根据请求所携带的参数进行限流。
测试代码
@GetMapping(“/testHotKey”)
@SentinelResource(value = “testHotKey”,blockHandler = “deal_testHotKey”)
//value 的值不用和访问路径一直,只要保证系统中是惟一的即可
public String testHotKey(@RequestParam(value = “p1”,required = false) String p1,
@RequestParam(value = “p2”,required = false) String p2) {
//int age = 10/0;
return “——testHotKey”;
}
//兜底方法,这里兜底只是负责违背Sentinel控制台配置的规则的兜底,并不负责请求接口中的代码异常情况,如上面代码中注释掉的
public String deal_testHotKey (String p1, String p2, BlockException exception){
return “——deal_testHotKey,o(╥﹏╥)o”;
}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
热点规则配置
设置热点资源为testHotKey,热点参数下标为0,也就是第一个参数p1,阈值是1时间,统计时间窗口为1S访问测试
只要访问请求达到设置的阈值后那么就会进入兜底方法。
这个请求不进入限制访问:http://localhost:8401/testHotKey?p2=abc
这些请求进入限制访问:http://localhost:8401/testHotKey?p1=abc,http://localhost:8401/testHotKey?p1=abc&p2=33
也就是只要包含第一个参数的那么都将进入现实访问范围参数例外项
这里也就是当请求参数符合设置的值是可以设置而外的限制规则
当参数下标为0的值为1的时候,限流阈值为100,当值为2的时候设置限流阈值为200,值为3的时候为300,这里需要注意一下参数类型!那么这就是参数例外项的配置效果!
注意
如果是我们业务代码中异常并不会进入兜底方法,再次强调,@SentinelResource只是管Sentinel控制台配置的规则,并不管我们的业务代码