一 hotkey规则
1.1 hotkey规则
其实就是热点key的限流。对某参数的单位时间里访问次数进行限流。
使用到@SentinelResource注解:用户定义资源,并提供可选的异常处理。
1.2 案例操作:降级规则默认
1.2.1 准备工作
1.先启动nacos,2.启动sentinel,3.启动7005的应用
2.规则配置:请求的第一个参数,在1s内超过2次访问,则进行热点规则处理
3.配置@SentinelResource:用户定义资源,并提供可选的异常处理。
4.页面快速访问,可以看到使用默认的@SentinelResource,不加blockhandler处理,则报默认的处理方式。
1.3 案例操作:降级规则处理自定义
1.3.1 准备工作
1.先启动nacos,2.启动sentinel,3.启动7005的应用
自定义降级处后处理逻辑
1.3.2 情况1 不携带参数
在sentinel配置热点规则:携带的第一个参数,1秒内超过2次,则触发热点规则,进行降级。
这里规则的配置: 资源名称配置成@SentinelResourece(value="testHotKey") 的value的值,不能配置成getMapping里面的路径:/testHotKey
1.不携带参数访问: 不停刷新,都能正常访问;配置规则是对第一个参数设置规则,没有第一个采参数,则不起作用
1.3.3 情况2 携带参数:
不停的快速刷新,可看到触发了热点规则,进行了自定义降级
1.4 案例操作3:参数例外项
1.先启动nacos,2.启动sentinel,3.启动7005的应用
1.配置含义: 当p1为333时候,触发的阈值为3 ,触发热点规则;当p1不为333时,触发的规则为1秒2次
测试当p1为333时,快速刷新,触发设置的热点规则,按自定义的降级处理。
二 系统规则
2.1 系统规则
系统规则可以理解为,全局规则,对一个系统的所有接口进行拦截。
1.配置如下:
2.任意找项目中的一个接口: 快速访问,超过2次/s 则触发限流