SpringCloud Alibaba Sentinel服务限流-三种流控模式,和流控效果

相比于豪猪哥的优点之一:能够在后台服务不重启的情况下动态配置流量访问规则。Sentinel8080监控平台和我们的业务逻辑是分开的。

一,服务限流-三种流控模式

限流规则
在这里插入图片描述
1,流控模式–直接:
在这里插入图片描述
**限流表现:当超过阀值,就会被降级。**就是不论你点击多少次,**每秒只能由一个请求是给你通过的。**多的请求就是给你返回默认报错,默认方式为快速失败,就是返回给页面Sentinel自带的请求失败信息

原因:QPS是每秒钟的请求数量,而我们阈值为1,表明每秒请求数量最多为1,且流控模式为直接,流控效果为快速失败( Sentinel有默认快速失败效果,我们也可以自定义)。
后端代码:
在这里插入图片描述

如图:每秒点击一次,则正常运行:
在这里插入图片描述
而每秒点击超过阈值,则直接快速失败
在这里插入图片描述

2,流控模式–关联:
例如:如果支付模块达到阈值之后,就限流下订单模块,如下:
在这里插入图片描述
**限流表现:**当关联的资源达到阈值时就会限流自己,如:我们配置的访问/testB就有可能限流/testA。而我们的限流效果是快速失败,就是返回给页面Sentinel自带的请求失败信息
后端代码:
在这里插入图片描述
测试我们需要使用postman进行并发请求/testB,我们自己在浏览器上请求/testA
在这里插入图片描述
我们在请求/testA,就会发现其被限流了
在这里插入图片描述

3,流控模式–链路:
在这里插入图片描述
**限流表现:**然后再发送请求至"host:port/testA"时,如果1秒内请求次数超过1次,就会自动触发限流。此外,通过其他微服务模块请求testA时,如果1秒内请求次数超过1次,同样会触发限流。

二,服务限流-三种流控效果

1,流控效果–预热快速失败:
就是被限流时,返回失败信息到页面:
在这里插入图片描述

2,流控效果–预热Warm UP:
默认coldFactor冷加载因子为3,即请求QPS从(请求总数/3)开始,经过我们设置的时间才逐渐升至设定的QPS阈值。

例如:阈值为10+预热时长设置为5秒
在这里插入图片描述

限流效果:系统初始化的阈值为10/3等于3.即阈值刚开始为3.如果刚开始每秒请求数大于3则默认失败。过了5秒后阈值才慢慢升高恢复到10,即5秒后能承受大于3但是仍要小于10的请求,才不会被限流

3,流控效果–排队等待:
在这里插入图片描述
在这里插入图片描述

后端代码:
在这里插入图片描述
1使用postman请求/testB进行测试,请求20次,每0.1秒请求一次
s-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pwZjE4MTM3NjM2Mzc=,size_16,color_FFFFFF,t_70)
限流效果:
在这里插入图片描述
虽然0.1秒发送过来一个请求,但是我后台不报错,而是把这20个请求积累下来,每秒处理一个请求,一共花费20秒才处理完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值