本章使用的Sentinel版本为1.8.4,版本之间会存在差异。
热点参数流控规则是一种更细粒度的流控规则,它允许将规则具体到参数上。
下面用举个例子
@GetMapping("/hot")
@SentinelResource("hotdemo")
public String hello(String name,Integer id) {
log.info("say hello------------1");
return "name:"+name+"--id:"+id;
}
表示name这个字段的请求每秒(按照统计窗口时长为一个时间单位,默认1秒)请求阈值为2,超过2次就限流,每秒只接受两个处理请求,多余的限流。
进入到热点规则,并点击编辑,点击高级选项。
设置高级选项
测试请求 http://localhost:8091/hot?id=100,频繁刷新发现被限流了,但是频繁请求http://localhost:8091/hot?id=101不会被限流。