Sentinel 三种流控效果

article/2025/8/24 23:23:17

文章目录

  • 流控效果
    • 1.快速失败
    • 2.warm up
      • 1)配置流控规则:
      • 2)Jmeter测试
    • 3.排队等待
      • 1)添加流控规则
      • 2)Jmeter测试
    • .总结

流控效果

我们先来回顾一下流控模式有哪些:

流控模式说明
直接统计当前资源的请求,触发阈值时对当前资源直接限流,也是默认的模式
关联统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流
链路统计从指定链路访问到本资源的请求,触发阈值时,对指定链路限流

三种流控模式我们都可以在流控选项中进行设置。

此外,在流控的高级选项中,还有一个流控效果选项,例如下图所示:

在这里插入图片描述

流控效果是指请求达到流控阈值时应该采取的措施,包括三种:

流控效果说明
快速失败达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。
warm up预热模式,对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值。
排队等待让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长

下面我们再来详细了解下各个流控效果是怎样的,注意:下面几种流控效果的流控模式都是默认的直接模式,我们只探究流控效果。

1.快速失败

快速失败是默认的处理方式,当请求达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。

例如我们设置阈值为一秒一个请求,当我们请求QPS超过阈值时候,在浏览器中会直接报错:

image-20220723163408620

浏览器中打印报错:

image-20220723163339567

2.warm up

阈值一般是一个微服务能承担的最大QPS,但是一个服务刚刚启动时,一切资源尚未初始化(冷启动),如果直接将QPS跑到最大值,可能导致服务瞬间宕机。

warm up也叫预热模式,是应对服务冷启动的一种方案。请求阈值初始值是 maxThreshold / coldFactor,持续指定时长后,逐渐提高到maxThreshold值。而coldFactor的默认值是3.

例如,我设置QPS的maxThreshold为10,预热时间为5秒,那么初始阈值就是 10 / 3 ,也就是3,然后在5秒后逐渐增长到10.

image-20210716110629796

案例

需求:给/order/{orderId}这个资源设置限流,最大QPS为10,利用warm up效果,预热时长为5秒

1)配置流控规则:

image-20210716111012387

2)Jmeter测试

image-20220723163630267

QPS为10.

刚刚启动时,大部分请求失败,成功的只有3个,说明QPS被限定在3:

image-20220723163737547

随着时间推移,成功比例越来越高:

image-20220723163728977

到Sentinel控制台查看实时监控:

image-20220723163941007

一开始:

image-20210716111526480

预热一段时间后:

image-20210716111658541

我们从过程中也可以看到,Wamp up效果的阈值增长是主键递增的

3.排队等待

当请求超过QPS阈值时,快速失败和warm up 会拒绝新的请求并抛出异常。

排队等待则是让所有请求进入一个队列中,然后按照阈值允许的时间间隔依次执行。后来的请求必须等待前面执行完成,如果请求预期的等待时间超出最大时长,则会被拒绝。

例如:QPS = 5,意味着每200ms处理一个队列中的请求;timeout = 2000,意味着预期等待时长超过2000ms的请求会被拒绝并抛出异常。

那什么叫做预期等待时长呢?

例如:现在一下子来了12 个请求,因为每200ms执行一个请求,那么:

  • 第6个请求的预期等待时长 = 200 * (6 - 1) = 1000ms
  • 第12个请求的预期等待时长 = 200 * (12-1) = 2200ms

现在,第1秒同时接收到10个请求,但第2秒只有1个请求,此时QPS的曲线这样的:

image-20210716113147176

如果使用队列模式做流控,所有进入的请求都要排队,以固定的200ms的间隔执行,QPS会变的很平滑:

image-20210716113426524

这样平滑的QPS曲线,对于服务器来说是更友好的。

那么下面我们来操作一下:

案例

需求:给/order/{orderId}这个资源设置限流,最大QPS为10,利用排队的流控效果,超时时长设置为5s

1)添加流控规则

image-20210716114048918

image-20220723164452805

2)Jmeter测试

image-20220723164317772

image-20220723164339591

QPS为15,已经超过了我们设定的10。

如果是之前的 快速失败、warmup模式,超出的请求应该会直接报错。

但是我们看看队列模式的运行结果:

image-20220723164508951

全部都通过了。

再去sentinel查看实时监控的QPS曲线:

image-20220723164525432

QPS非常平滑,一致保持在10,但是超出的请求没有被拒绝,而是放入队列。因此响应时间(等待时间)会越来越长。

当队列满了以后,才会有部分请求失败:

image-20220723164541236

.总结

流控效果有哪些?

流控效果说明
快速失败达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。
warm up预热模式,对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值。
排队等待让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长

http://chatgpt.dhexx.cn/article/IPrpheMf.shtml

相关文章

Sentinel流控规则之流控模式介绍

目录 1.直接模式 2.关联模式 3.链路模式 4.流控模式总结 参考: Sentinel限流规则-流控模式之链路模式【图文】_mb5fd869d1d8388_51CTO博客 SpringCloud Alibaba之Sentinel流控管理 - 知乎 (zhihu.com) Sentinel-流控模式之关联模式【图文】_mb5fdcae58218c5_…

串口使用系列学习之什么是流控

概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。  如台式机与单片机之间的通讯,接收端数据缓冲区已满,则…

串口流控(CTS/RTS)使用详解

1.流控概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。 如台式机与单片机之间的通讯,接收端数据缓冲区已满&#xff0…

数据治理--浅谈数据标准、元数据、主数据、数据模型

数据标准 数据标准:保障数据的内外部使用和交换的一致性、准确性的规范性约束(如命名、类型、值域等),通常包括了基础指标和计算指标 计算指标:即计算口径,如下单转化率、获客成本、复购率的具体计算的方式 如怎么定义一个人的性别、婚姻状况、健康状况,在不同的业务系…

什么是主数据?什么是主数据管理系统?

什么是主数据?什么是主数据管理系统? 什么是主数据? 企业主数据(Master Data)是用来描述企业核心业务实体的数据,比如客户、合作伙伴、员工、产品、物料单、账户等;它是具有高业务价值的、可以在…

客户主数据

1、KNA1(客户主文件的一般数据) 2、KNB1(客户主数据 (公司代码)) 3、KNVV(客户主记录销售数据) 4、KNVP(客户主记录伙伴功能) 5、KNVK(客户主要联系伙伴) 6、KNAS(客户主数据(一般地区的增值税登记号)) 7、KNB5(客户主记录 (催款数据)) …

企业的主数据建设方法论与实践 | 推荐收藏

本篇文章为亿信华辰《企业的主数据建设方法论与实践》视频直播稿件。 这次我的主题是企业的主数据建设方法论与实践,相信大家来听这场直播,都是对主数据建设比较感兴趣的,同时我也希望能够通过这样一场分享,给大家在主数据的建设…

BP 供应商主数据

BP 供应商S4 和ECC的区别: BP master 这个在SAP ECC6.0之前,SAP对供应商主数据,客户主数据是单独管理的,到了S4 HANA版本,所有的客户主数据和供应商主数据都叫BP 主数据, 通过不同的BP Role 来区分是供应商…

什么是主数据?有什么作用?

什么是主数据?有什么作用? 在说主数据之前,我们先来看一个场景再来看一个行业趋势到底什么是主数据?为什么说主数据管理是一切工作的起点?为了应对这些问题,我们需要引进主数据管理(MDM&#xf…

数据治理【主数据管理】

目录 1.摸家底 1.1 数据资源普查 1.2 主数据识别 1.3 数据管理能力评估 2.建体系 2.1 组织体系 2.2 标准体系 2.3 制度与流程体系 2.4 技术体系 2.5 安全体系 3.接数据 4.抓运营 4.1 主数据管理 4.2 主数据推广 4.3 主数据质量 4.4 主数据变现 我们知道主数据项目的建设是一个循…

主数据建设思路分享

J企主数据方案分享 (一):主数据现状、问题分析及客户诉求 J企的主数据实施业务方案已经签署,主数据平台开发方案也基本敲定,接下来推进历史数据规整方案和各业务系统优化方案的制定。 在此与各位同学分享主数据方案…

数据治理系列(三):主数据管理

主数据项目建设从方法上,分为以下四部,简单归结为12个字:“摸家底、建体系、接数据、抓运营”! 一、摸家底 摸家底需要全面调研和了解企业的数据管理现状,以便做出客观切实的数据管理评估! 1、数据资源普查 数据资源普查的方法常用的有两种,一种是自顶向下的梳理和调…

数仓建模—主数据管理

主数据管理 前面我们介绍过元数据管理,其实关于元数据我们称之为数据的数据,或者说是描述数据的数据,其实除了元数据之外,我们还有主数据,也就是元数据的描述对象。 元数据为大数据平台绘制数据地图、统一数据口径、标明数据方位、分析数据关系、管理模型变更及精确到字…

主数据项目交付最佳实践

任何规模的企业都会存在各种各样的数据问题,主数据管理早在十几年前就已经是企业信息化建设中的一部分,由于企业普遍对此缺乏正确的认识、系统个数较少、数据混乱现象不明显等原因,导致主数据管理这一手段并没有被企业真正的重视起来&#xf…

【数据治理】数据元、元数据、主数据、参考数据概述

【数据治理】数据元、元数据、主数据、参考数据概述 数据元 什么是数据元: 《GB/T 19488.1 电子政务数据元第1部分:设计和管理规范》 里是这样定义的: 数据元(Data element):又称数据类型,通…

MDM主数据管理平台开发精要

随着企业业务迅速发展,需要支撑业务运转的信息系统越来越多,各系统之间数据分散、重复,未完全形成业务闭环,数据孤立不能互通,数据统计不一致,企业主数据(组织、人员、项目、客户、供应商、产品…

一文理解主数据和参考数据

如果你准备要开展推动数据治理或者是数据质量的项目,那么你就有可能会听说到几个词:主数据和参考数据。一开始听到主数据这一词听起来就很高大上,而且非专业人士肯定不理解(即便是从事数据行业的朋友也很难参透)。这一…

主数据治理平台培训规程

主数据管理平台打通各业务链条,消除不同部门重复录入数据造成的数据冗余。统一数据语言,统一数据标准,实现数据同源、数据共享,最大程度提高数据的权威性。同时也可以作为公司内部业务运转、经营分析、决策制定的“通用语言”&…

主数据同步与分发实现

随着企业的发展,各项数据的权威性显得尤为重要,针对解决企业的基础数据治理以及传输问题,数通畅联开发出了MDM主数据管理平台。主数据治理方案可以将企业的组织、人员、客户、供应商等高度共享的数据进行统一管理,对需要的业务系统…

数据治理——主数据项目实施

文章目录 一.主数据定义1.数据的层次模型(根据数据的特征、作用以及管理需求的不同)2.主数据涵盖了元数据、引用数据、企业结构数据、业务结构数据 二.传统的软件项目实施三.主数据项目四.主数据项目详细规划第一阶段(体系规划阶段)第二阶段:…