之前几篇中,我们实验的是sentinel的流控模式,这里我们试试流控效果,环境搭建参考八、springCloudAlibaba-整合sentinel
1、快速失败
我们之前一直用的都是快速失败,也就是只要触发规则,立马就会被流控,返回失败。这个没什么好说的,那么其他两种warm up也就是预热,和排队等待有什么意义呢?
2、预热(Warm Up)
其实这种效果是为了防止数据库或者缓存还没准备好,瞬间流量压垮系统,比如如下图
我们设置了单机阈值有10,也就是一秒钟可以支持10个请求,可能这个是我们的服务器运行过程中总体可以支撑这么多,但是在服务器刚启动或者说缓存没有准备好,第一波流量进来,系统是不能支撑到10的,所以我们需要设置流控效果为预热下,按上面的配置,也就是10秒后我们的系统才能正常的支撑10的QPS,前面如果第一秒涌进来10QPS,会有一部分被流控,从而保护我们的系统。
3、排队等待
这种效果是为了应对如下业务场景,我们的系统流量是一波波来的,可能三秒内流量超级高,后面几秒又没有流量了,比如我们在sentinel控制台看到类似这种
很明显,流量是一波波来的,服务器一下忙碌一下空闲,此时我们就可用排队等待的效果。类似
我们让请求排队等待,虽然我的系统只支持1QPS,但是你流量是一波来,后面就不来了,那么可以让其他流量稍微等待5秒,这样就把空闲的性能也用上啦!