Sentinel限流规则-热点参数限流
之前的限流是统计访问某个资源的所有请求,判断是否超过QPS阈值。而热点参数限流是分别统计参数值相同的请求(或统计参数值相同的资源),判断是否超过QPS阈值。
代表的含义是:对hot这个资源的0号参数(第一个参数)做统计,每1秒相同参数值的请求数不能超过5
在热点参数限流的高级选项中,可以对部分参数设置例外配置:
结合上一个配置,这里的含义是对0号的long类型参数限流,每1秒相同参数的QPS不能超过5,有两个例外:
如果参数值是100,则每1秒允许的QPS为10
如果参数值是101,则每1秒允许的QPS为15
案例:给/order/{orderId}这个资源添加热点参数限流,规则如下:
1.默认的热点参数规则是每1秒请求量不超过2
2.给102这个参数设置例外:每1秒请求量不超过4
3.给103这个参数设置例外:每1秒请求量不超过10
注意:热点参数限流对默认的SpringMVC资源无效,修改代码如下:
@SentinelResource("hot")
@GetMapping("{orderId}")
public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {
// 根据id查询订单并返回
return orderService.queryOrderById(orderId);
}