官方地址:https://github.com/alibaba/Sentinel/wiki/热点参数限流
场景:何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:
- 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制
- 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制
1.创建方法
@GetMapping("/testC")
@SentinelResource(value = "testC",fallback = "testCFallkack")
public String testC(@RequestParam(required = false,name = "a") Integer a,@RequestParam(required = false,name = "b") Integer b) {
return "------testC,a="+a+",b"+b;
}
public String testCFallkack(Integer a,Integer b){
return "太拥挤了。。。,稍等在试一下";
}
2.创建热点key规则
2.1根据参数索引添加限制
效果:
-
当访问url为url/testC?a=1的时候,访问过快则进行服务降级。返回:太拥挤了。。。,稍等在试一下
-
当访问url为url/testC?b=1的时候,访问多块都没限制