一、新增测试方法
框选处为新增的方法,可以看到有两个传入参数,分别是username和password。
进入sentinel(若不知道怎么进入,在前几个章节有),针对该接口资源(test4_4)进行热点规则指定,如下:
参数索引是指:针对该资源的第几个参数进行设置热点规则,上面的username是第一个参数,索引从0开始,所有此处是对username这一入参进行热点规则设置。
进行修改热点规则界面,指定更详细的规则,如下:
选择参数类型和具体值以及阀值,点击添加即可。上述设置意味着,若该资源的第一个参数在一秒内(QPS)请求了10次,则进行热点控制,若第一个参数的入参是‘zrc’,且一秒内请求了5次,则进行限流,注意:单机阀值需大于限流阀值。
二、演示
通过jmeter进行测试,如下:
上面设置的QPS阀值是10,所有此处设置线程数为15方便设置。结果如下:
通过5次后,全部拒绝了。
若第一个入参不是zrc,如下:
点击运行,结果如下:
通过了10次,再拒绝了后面的,所有没有走参数热点的配置,只走了QPS阀值的配置。
三、全局处理热点问题
上面通过sentinelResource注解实现了热点规则,但是若像上一章一样使用全局配置却发现失效了。可见,使用全局异常处理不能使用sentinelResource注解。
此问题还未解决,望大佬们评论区帮帮忙。