sentinel–基础–4.2–限流规则–流控模式
代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/master/sentinel_learn/demo2
1、介绍
对某个资源进行流量管控
这里是限制 /getId/{id}
这个资源的单机QPS设置为1,即每秒只允许1次请求,超出的请求会被拦截并报错
2、流控模式–直接
- 统计当前资源的请求,触发阈值时对当前资源直接限流,
- 是默认的模式
2.1、设置
2.2、测试
并发数为10
3、流控模式–关联
统计与当前资源相关的另一个资源,当另一个资源触发值时,对当前资源限流。
举例:假设当前资源名称为A,另外一个资源名称为B,当B触发值时,对A资源限流。
3.1、满足下面条件可以使用关联模式
两个有竞争关系的资源一个优先级较高,一个优先级较低
3.2、使用场景
比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争抢数据库锁,产生竞争,业务需求是有限支付和更新订单的业务,因此当修改订单业务触发阈值时,需要对查询订单业务限流。
3.3、代码
3.4、测试
并发数为10
4、流控模式–链路
统计从指定链路访问到本资源的请求,触发阈值时,对指定链路限流
4.1、设置
有2个链路,分别是
/getId3
--> sayhello
/getId4
--> sayhello
有这样的如下需求
当/getId4
资源的qps>2是,对 sayhello
资源限流,而另一条从/getId3
到sayhello
的链路则不会受到任何影响。
4.2、代码
4.3、测试
并发数为10