SpringCloud Alibaba Sentinel 流量控制之流控效果实践总结

当 QPS 超过某个阈值的时候,则采取措施进行流量控制。流量控制的效果包括以下几种:直接拒绝、Warm Up、匀速排队/排队等待。对应 FlowRule 中的 controlBehavior 字段。

注意:若使用除了直接拒绝之外的流量控制效果,则调用关系限流策略(strategy)会被忽略。

官网地址:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6

【1】直接拒绝

直接拒绝(RuleConstant.CONTROL_BEHAVIOR_DEFAULT)方式是默认的流量控制方式,当QPS超过任意规则的阈值后,新的请求就会被立即拒绝,拒绝方式为抛出FlowException。

这种方式适用于对系统处理能力确切已知的情况下,比如通过压测确定了系统的准确水位时。

在这里插入图片描述

浏览器频繁访问 :http://localhost:8401/testA ,将会抛出异常信息Blocked by Sentinel (flow limiting)。

在这里插入图片描述

对应源码实现为:com.alibaba.csp.sentinel.slots.block.flow.controller.DefaultController

【2】Warm Up

Warm Up(RuleConstant.CONTROL_BEHAVIOR_WARM_UP)方式,即预热/冷启动方式。

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

通常冷启动的过程系统允许通过的 QPS 曲线如下图所示:

在这里插入图片描述

具体来说为:阈值除以coldFactor(默认值为3),经过预热时长后才会达到阈值。

默认coldFactor为3,即请求 QPS 从 threshold / 3 开始,经预热时长逐渐升至设定的 QPS 阈值。如下为例,刚开始限制QPS为10/3=3,经过5秒后,QPS限制为设置的阈值10 。

在这里插入图片描述

源码实现:com.alibaba.csp.sentinel.slots.block.flow.controller.WarmUpController

应用场景如:秒杀系统在开启的瞬间,会有很多流量上来,很有可能把系统打死,预热方式就是把为了保护系统,可慢慢的把流量放进来,慢慢的把阀值增长到设置的阀值。

【3】匀速排队

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

该方式的作用如下图所示:

在这里插入图片描述

这种方式主要用于处理间隔性突发的流量,例如消息队列。想象一下这样的场景,在某一秒有大量的请求到来,而接下来的几秒则处于空闲状态,我们希望系统能够在接下来的空闲期间逐渐处理这些请求,而不是在第一秒直接拒绝多余的请求。

注意:匀速排队模式暂时不支持 QPS > 1000 的场景。

如下我们设置规则,期望每秒处理一个请求。

在这里插入图片描述

频繁请求 http://localhost:8401/testA,如下图所示每秒处理一个请求,后面的请求需要等待:

在这里插入图片描述

其源码实现为:com.alibaba.csp.sentinel.slots.block.flow.controller.RateLimiterController

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/31335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何有效管理信息技术课堂

有效管理信息技术课堂是确保学生学习效果、维护课堂秩序和提升学生兴趣的关键。以下是一些详细的方法和策略,旨在帮助教师更好地管理信息技术课堂: 一、制定明确的课堂规则 强调课堂纪律:确保学生明确了解并遵守课堂纪律,如准时…

long long ago

一、long 众所周知,英文单词 long,表示长,长的。 但是,还有很多你不知道到的东西,根据英文单词首字母象形原则,我们可以做一下单词long结构分析: long l长 ong长 什么意思?就是说首字线 l…

H3C路由器密码恢复方法

H3C的路由器需要先关闭电源,重新启动路由器,注意终端上显示 press CTRLB to enter extended boot menu 的时候,请迅速按下ctrlB,这样将进入扩展启动选项。接着,你就可以进入路由器视图: 1.低端H3C设备 重启…

STM32 I2C总线锁死原因及解决方法

本文介绍STM32 I2C总线锁死原因及解决方法。 在使用STM32 I2C总线操作外设时,有时会遇到I2C总线锁死(I2C总线为Busy状态)的问题,即便复位MCU也无法解决,本文介绍其锁死的原因和解决方法,并给出相应的参考代…

pdf转图片转换器,pdf转图片的工具

在日常的工作和学习中,我们经常会遇到需要将PDF文件转换为图片格式的情况。那么,如何才能将PDF格式转换为图片格式呢?今天,我将为大家介绍几种简单易用的方法,帮助大家轻松实现PDF转图片。 打开“轻云pdf处理官网网站”…

deepin 加入甲辰计划,共建 RISC-V 繁荣生态

内容来源:deepin(深度)社区 今日,deepin(深度)社区宣布正式加入甲辰计划,致力于在下一个丙辰年(2036龙年)之前,基于RISC-V实现从数据中心到桌面办公、从移动穿戴到智能物联网全信息产…

【廉颇老矣,尚能饭否】传统的数据仓库是否还能发挥作用?

引言:随着数字化转型的深入和大数据技术的发展,大数据平台、数据中台和和数据湖技术不断涌现,给人感觉传统的数据仓库技术已经过时,廉颇老矣,不能应对新的挑战,在数字化转型中,不能发挥重要作用…

网络与协议安全复习 - 电子邮件安全

文章目录 PGP(Pretty Good Privacy)功能 S/MIME(Secure/Multipurpose Internet Mail Extensions)DKIM(Domain Keys Identified Mail) PGP(Pretty Good Privacy) 使用符号: Ks:会话密钥、KRa:A 的私钥、KUa:A 的公钥、EP&#xff…

JAVAWeb---- 数据库的简单了解

目录 1.什么是数据库 2.什么是数据库管理系统 3.什么是SQL 4.什么是关系型数据库 1.什么是数据库 用来存储和管理数据的“仓库”,简称DB(Database); 2.什么是数据库管理系统 对数据库的一切操作都是在数据库管理系统进行的,比如MySQL&a…

软件测试之解构单元测试

软件单元测试是对软件中的最小可测试单元进行检查和验证的过程。这些单元可以是函数、方法、类实例,或者是任何具有明确功能、规格定义和接口定义的程序代码模块。单元测试是软件开发过程中的最低级别的测试活动,它确保软件的独立单元在与程序的其他部分…

eclipse中没有SERVER的解决办法(超详细)

将 Tomcat 和 Eclipse 相关联时,Eclipse有的版本发现 发现eclipse->【Window】->【Preferences】里没有【server】从而配置不了Runtime Environment。所以需要通过eclipse进行安装。 通过我个人的经验下面给出解决办法: 一、获取 Eclipse版本 点击…

Kafka中的时间轮算法

1. Kafka与时间轮: Kafka的定时器底层使用时间轮算法。Kafka时间轮是层次时间轮,并且支持时间轮复用。 优点: 高效的插入操作: 时间轮底层数据结构(桶),使用双向链表的设计使得插入操作的时间…

若电路板上的二极管损坏后怎么确定型号呢?

若电路板上的二极管损坏后,还可以看清原来管子的型号,换用一个同型号的二极管即可。若看不清型号或管子未标注型号,一般可以根据该二极管在电路中的作用来代换。电路板上的二极管坏了,如何确定它的型号?。 一般来说看…

气象数据NC、grb2解析成矢量json、CMIS、MICPS及图片应用到webgis

一、基础概念 气象数据通常以多种格式存储和交换,以适应不同的应用需求和处理工具。以下是一些常见的气象数据格式及其转换方法的概述: 常见气象数据格式 1. NetCDF(Network Common Data Form):一种自描述、自包含的…

如何在MATLAB中创建各种常用的图形

本文将介绍如何在MATLAB中创建各种常用的图形。将涵盖以下内容: 基本的二维图形 折线图(Line Plot)散点图(Scatter Plot)条形图(Bar Plot)面积图(Area Plot) 三维图形 三…

WACV2024论文3D相关速览48篇

WACV2024 3D相关论文阅读 Paper1 Self-Supervised Edge Detection Reconstruction for Topology-Informed 3D Axon Segmentation and Centerline Detection 摘要小结: 许多基于机器学习的轴突追踪方法依赖于带有分割标签的图像数据集。这需要领域专家的手动标注,既…

R语言——绘图与数据可视化

1、练习将25个点的符号绘制出来,然后用rainbow()返回25个颜色,后5个符号形状的背景颜色用蓝色填充,图的标题为"符号图",x轴标题为符号索引,y轴标题为符号形状。 2、根据员工的销售业绩画饼状图,添…

[保姆级教程]在uniapp中使用vant框架

文章目录 导文安装 Vant在uniapp项目中的pages.json中配置easycom,实现组件的自动按需引入:在页面中使用Vant Weapp组件,例如使用按钮组件(Button):其他安装报错官网地址 导文 在 uni-app 中使用 Vant 框架…

关于OS中逻辑地址与物理地址转换

首先将逻辑地址134D从十六进制转为2进制 0001 0011 0100 1101 1)1K的时候对应2的10次方 页面大小占10位 从后往前数 0001 00 || 11 0100 1101 前面的转为十进制为4 对应页号4内容1A转为2进制01 1010将这个替换原来的前六位数字 即0110 1011 0100 1101 再转换为…

智慧工厂监控可视化解决方案(160页WORD)

方案介绍: 本智慧工厂监控可视化解决方案通过集成先进的物联网和大数据技术,为制造业企业提供了全面的数字化转型支持。通过实时监控、数据分析、可视化展示等功能,帮助企业提升生产效率、降低运营成本、优化产品质量和能源利用率&#xff0…