Sentinel流量控制规则

Posted java1234_小锋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sentinel流量控制规则相关的知识,希望对你有一定的参考价值。

完整目录清单页面(必看)

流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。

重要属性:

Field说明默认值
resource资源名,资源名是限流规则的作用对象
count限流阈值
grade限流阈值类型,QPS 模式(1)或并发线程数模式(0)QPS 模式
limitApp流控针对的调用来源default,代表不区分调用来源
strategy调用关系限流策略:直接、链路、关联根据资源本身(直接)
controlBehavior流控效果(直接拒绝/WarmUp/匀速+排队等待),不支持按调用关系限流直接拒绝
clusterMode是否集群限流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iH740fK9-1622725370883)(image-20210601102507400.png)]

限流类型分为:

  • QPS 每秒请求数限制
  • 线程数 资源使用线程数限制

流控模式

  • 直接 资源直接限流,这个就是简单的限流。
  • 关联 关联模式需要填写关联资源的路径,意为如果关联资源的流量超额之后,限流自己(自己为资源名填写的路径)。
  • 链路 如果是链路模式需要填写入口资源,限制入口资源对自己的调用。

流控效果

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

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

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

同一个资源可以同时有多个限流规则,检查规则时会依次检查。

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

以上是关于Sentinel流量控制规则的主要内容,如果未能解决你的问题,请参考以下文章

Sentinel.02.Sentinel之流量控制

Sentinel dashboard控制台搭建

Sentinel-Dashboard 与 apollo 规则的相互同步

Sentinel流控规则简介与实践

Sentinel微服务组件Sentinel控制台的规则配置

Sentinel微服务组件Sentinel控制台的规则配置