开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第二阶段:热点规则】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/684/detail/11877
热点规则
内容介绍
一、编写代码
二、热点参数规则的简单应用
一、编写代码
(1) 热点规则的含义
热点规则也叫热点参数流控规则,他是一种更细粒度的流控规则,它允许我们将流控规则,具体到参数的级别上。
(2) 编写代入参数的方法
如果想将流控规则作用于参数上,首先需要准备一个编写参数的方法,接下来我们编写一个方法让他代入参数。
@RequestMapping(“/or der/message3”)
@Sentine]Resorce(“message3”)//注意这里必须使用这个注解标识,热点规则不生效
Public string message3(string name,integer age){return
name+age;}
注意先将
i++;
If(i%3==0){throw new RuntimeException();}
删除然会将
@RequestMapping(“/order/message2”)
Public string message2()
//orderserviceImpl3.message();
return“message2”
拷贝出来将其中“2”改成“3”
并去掉//orderserviceImpl3.message();
在Publicstring message3( )的“()”添加参数string name,integer age
然后在 return“message3”后添加+name+age注意必须在@RequestMapping(“/order/message3”)后添加注解@Sentne1Resource(“message3”)这个注解的作用,用来标识一个资源,这里必须要加,不加没有办法配热点规则。代码到这里配写完毕。
二.热点参数规则的简单应用
(1)访问参数
启动代码
访问 localhost:8091/order/messag3 并添加name=hm,发现 hm 已经得到。
之后再次访问 localhost:8091/order/messag3 并添加 age=14之后刷新之后发现2个参数都可以访问
(2)对参数进行热点规则限流
点开簇点线路,注意 message 必须配置在刚才自定义的资源上。找到热点规则,限流模式必须是 QPS 模式。参数索引指我们方法的(string name,integer age)该位置的缩影值。
比如说:name 是0,age 是1.在参数索引选项上写0就表示对 name 进行限流,此时,单机阈值改成3,统计窗口市长1秒,点击新增,完成后刷新,发现限流生效。
反过来观察 age,并刷新,并没有任何限制。证明我们对于 name 的限流可以生效了。
接下来,对 age 也进行添加在 name原有基础上将参数索引改成1,再次刷新,发现 age 已经限流。
(3)热点规则限流的详细指定
点击编辑页面,新增页面是看不到的,找到热点规则,点击编辑,点开高级选项,允许对参数额外添加选项。
将上述 age=14 限流,添加age=15不限流,首先参数类型为 int 将参数值改为15,限流阈值随意更改如10000,点击添加,发现新增一个规则,点击保存。
之后刷新 localhost:8091/order/messag3age=15,发现成功,这便是将流控规则细化到参数数值上。

