Sentinel-限流规则(流控模式:直接、关联、链路)

Sentinel-限流规则(流控模式:直接、关联、链路)_第1张图片

一、流控模式-直接

添加规则:

Sentinel-限流规则(流控模式:直接、关联、链路)_第2张图片

 Sentinel-限流规则(流控模式:直接、关联、链路)_第3张图片

测试例子分析:

Sentinel-限流规则(流控模式:直接、关联、链路)_第4张图片

 启动测试

Sentinel-限流规则(流控模式:直接、关联、链路)_第5张图片

点击 察看结果树

Sentinel-限流规则(流控模式:直接、关联、链路)_第6张图片

 上面测试例子,到Sentinel控制台的实时监控可以看到Sentinel-限流规则(流控模式:直接、关联、链路)_第7张图片

 Sentinel-限流规则(流控模式:直接、关联、链路)_第8张图片

 二、流控模式-关联

关联模式 统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流
使用场景 :比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争                       抢数据库锁,产生竞争。业务需求是有限支付和更新订单的业务,因此当修改订                       单业务触发阈值时,需要对查询订单业务限流。

Sentinel-限流规则(流控模式:直接、关联、链路)_第9张图片

/write资源访问量触发阈值时,就会对/read资源限流,避免影响/write资源。

案例:

        需求:  

         •在OrderController新建两个端点:/order/query和/order/update,无需实现业务  

         •配置流控规则,当/order/ update资源被访问的QPS超过5时,对/order/query请求限流

1. 编写测试controller方法:

Sentinel-限流规则(流控模式:直接、关联、链路)_第10张图片

 2. 添加规则(想给谁限流,就给谁添加规则)

Sentinel-限流规则(流控模式:直接、关联、链路)_第11张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第12张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第13张图片

 3. 借助JMeter进行测试:

Sentinel-限流规则(流控模式:直接、关联、链路)_第14张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第15张图片 4. 去网页访问验证:Sentinel-限流规则(流控模式:直接、关联、链路)_第16张图片

query被限流 Sentinel-限流规则(流控模式:直接、关联、链路)_第17张图片

5. 总结: 满足下面条件可以使用关联模式

1. 两个有竞争关系的资源   

2. 一个优先级较高,一个优先级较低(优先级高的触发阈值时(本案例的order),对优先级低的限流(本案例的query))

三、流控模式-链路

Sentinel-限流规则(流控模式:直接、关联、链路)_第18张图片

案例:

Sentinel-限流规则(流控模式:直接、关联、链路)_第19张图片

1. 编写测试代码:

Sentinel-限流规则(流控模式:直接、关联、链路)_第20张图片

 Sentinel-限流规则(流控模式:直接、关联、链路)_第21张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第22张图片

 2. 注意:

 Sentinel默认只标记Controller中的方法为资源,如果要标记其它方法,需要利用@SentinelResource注解

去配置文件里配置,关闭context,就可以让controller里的方法单独成为一个链路;不关闭context的话,controller里的方法都会默认进去sentinel默认的根链路里,这样就只有一条链路,无法流控链路模式

Sentinel-限流规则(流控模式:直接、关联、链路)_第23张图片

3. 启动之后,并到网页里分别访问了/order/query和/order/save接口后

Sentinel-限流规则(流控模式:直接、关联、链路)_第24张图片

4. 添加规则:(对query做限制,save没有做限制)

Sentinel-限流规则(流控模式:直接、关联、链路)_第25张图片

 Sentinel-限流规则(流控模式:直接、关联、链路)_第26张图片

5. 借助JMeter来测试:

Sentinel-限流规则(流控模式:直接、关联、链路)_第27张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第28张图片

启动测试 Sentinel-限流规则(流控模式:直接、关联、链路)_第29张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第30张图片

Sentinel-限流规则(流控模式:直接、关联、链路)_第31张图片

你可能感兴趣的:(Sentinel,springcloud,sentinel)