Sentinel流控规则-流控效果

一、流控效果---快速失败[默认的流控处理]

直接拒绝(RuleConstant.CONTROL_BEHAVIOR_DEFAULT)方式是默认的流量控制方式,当QPS超过任意规则的阈值后,新的请求就会被立即拒绝,拒绝方式为抛出FlowException。这种方式适用于对系统处理能力确切已知的情况下,比如通过压测确定了系统的准确水位时。

源码:com.alibaba.csp.sentinel.slots.block.flow.controller.DefaultController

测试---流控效果---快速失败--阈值类型[QPS]

快速失败:直接失败,抛异常


image.png

=========================================================================================

二、流控效果---Warm Up(预热)

Warm Up(RuleConstant.CONTROL_BEHAVIOR_WARM_UP)方式,即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。

Warm Up

测试---流控效果---预热---阈值类型[QPS]

Warm Up:根据codeFactor(冷加载因子,默认3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS阈值。

  1. 新建流控规则,流控效果设置为预热

在5秒内最大阈值是3(10/codeFactor),超过5秒,最大阈值为10

流控效果---预热
  1. 测试效果
    在5秒内狂点 http://localhost:8401/testA,发现超过3次就报错
    超过3次就报错

超过5秒狂点 http://localhost:8401/testA,发现超过3次就不报错,超过10次才报错

image.png

=========================================================================================

三、流控效果---排队等待

匀速排队(RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER)方式会严格控制请求通过的间隔时间,也即是让请求以均匀的速度通过,对应的是漏桶算法。

排队等待

测试---流控效果---排队等待--阈值类型[QPS]

排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为 QPS ,否则无效。

  1. 新建流控规则,流控效果设置为排队等待
流控效果---排队等待
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容