Spring Cloud Alibaba——Sentinel流控


环境这里默认大家已经搭配好了,服务注册进了Nacos8848,并且sentinel也成功的监测到了当前服务。

由sentinel提供给我们的流控规则可知,流控模式分为三种:直接关联链路
在这里插入图片描述

直接模式(默认)

直接模式意思就是当出现我们配置的情况时,直接出现流控效果。我们这里简单测试一下。
如图:
在这里插入图片描述

我的测试项目有两个资源路径定位,我们拿A来测试。

QPS

QPS:每秒钟请求的数量。阈值设置为1
在这里插入图片描述
当我们频繁访问A资源时(由于设置的较低,此处刷新代替Jmeter测试工具),在一秒内疯狂刷新,结果出现如下情况
在这里插入图片描述
代表我们流控成功…

并发线程数

接下来切换为并发线程数,同时只能有指定的线程数在处理资源,此处指定一个
在这里插入图片描述
我们在代码处让它睡眠了5秒,大家别忘了
在这里插入图片描述
此时,当我们去访问资源时,至少5秒后,它才能处理完毕,而在这5秒当我们再去请求时,由于指定的线程数已经在处理其它请求,于是就出现如下页面
在这里插入图片描述
也是代表流控成功…

关联模式

先看配置图
在这里插入图片描述
意思就是当A与B相关联,当B出现指定情况时,A来受罪!!!举个简单例子就是下订单和支付两个模块关联,当支付模块承受太大压力时,订单模块你歇一会缓一缓,订单模块降下来,支付模块自然也就好起来了…
此处也可以使用Jmeter进行测试,使多个线程同时访问B,结果访问A时出现如下情况
在这里插入图片描述
代表流控成功…

链路模式

先上配置
在这里插入图片描述
在这里插入图片描述
链路模式意思是,当从某个接口过来的资源达到指定限流条件时,开启限流。它的功能有点类似于针对来源配置项,区别在于:针对来源是针对上级微服务,而链路流控是针对上级接口,也就是说它的粒度更细。这里直接测试了,自己还可以添加多级链路才测试下。
在这里插入图片描述
当刷新次数过多,出现这个,则代表流控成功…

流控效果

流控效果也是分为三种:快速失败Warm up排队等待
我们之前一直使用默认的快速失败。这里简单说下其它两种

Warm up

warm up,预热。先来说明一个场景,就是秒杀系统(或者说身边常见的选课系统和报名4 6级),当到达指定时间时,一瞬间巨多的流量冲过来,这样做会产生什么效果呢?没错,系统可能一下子扛不住,直接瘫痪,这时候我们需要给系统一个缓冲的时间。
接着就看配置图
在这里插入图片描述
我们想让系统承受每秒为10的请求数量,但我们一开始并不需要里面去承受10的请求数量,我们给它5秒的缓冲时间,它一开始只需要承受3的请求数量。那为什么是3呢?这里就需要提到一个coldFactor,冷因子哈哈哈???和hashmap中的loadFactor差不多。它默认为3
在这里插入图片描述
刚开始的阈值=设定的阈值/coldFactor.
所以小总结一下,当我们设置流控效果为warm up时,当前资源从设定的阈值/coldFactor,经过预热时长,才达到真正的设定阈值

排队等待

就字面意思,你来了没人处理你你就排好队等待,场景令牌桶等等

tips

若有错,欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值