基本介绍
流控模式
直接(默认)
测试
1、快速点击访问http://localhost:8401/testA
2、Blocked by Sentinel (flow limiting)
关联
是什么:
当关联的资源达到阈值时,就限流自己,例如当与A关联的资源B达到阈值后,就限流自己(即B惹事,A挂了)。
测试
1、postman模拟并发密集访问testB
2、点击访问http://localhost:8401/testA
3、运行后发现testA挂了
流控效果
直接->快速失败(默认的流控处理)
直接失败,抛出异常Blocked by Sentinel (flow limiting)
预热
公式:阈值除以coldFactor(默认值为3),经过预热时长后才会达到阈值
默认coldFactor为3,即请求QPS阈值从threshold/3开始,经预热时长逐渐升至设定的QPS阈值。
可以从com.alibaba.csp.sentinel.slots.block.flow.controller.WarmUpController发现其冷因子默认值是3
配置
测试
1、多次点击http://localhost:8401/testB
2、刚开始不行,后续慢慢OK
应用场景:如:秒杀系统在开启的瞬间,会有很多流量上来,很有可能把系统打死,预热方式就是把为了保护系统,可慢慢的把流量放进来,
慢慢的把阀值增长到设置的阀值
排队等待
匀速排队,阈值必须设置为QPS
配置:
测试
1、用postman模拟,每0.2s给testb发10个请求
2、可以看到10个请求并不是同时处理的,而是每1s处理一个