从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十)sentinel篇(2): sentinel 流控规则及使用详解

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十)sentinel篇(2): sentinel 流控规则及使用详解

sentinel qps与最大并发数区别,流控模式:直接,关联,链路, 流控效果: 直接,关联,链路 ,流控效果:快速失败,Warm Up,排队等待 等详解

1.png

流控配置与使用


1.png

基本配置-阈值类型


qps 类型


1.png

qps 相当于每秒请求数,和实际处理能力无关,也就是针对某资源,每秒请求数达到设定阈值,则触发限流



最大并发数 类型


1.png

最大并发数 相当于系统正在处理这个资源的线程数,也就是针对某资源,如果判断正则处理的线程数达到阈值,则触发限流


qps 与 最大并发数区别


下面是我的个人看法,为了方便大家更容易理解,可以把资源想象成一个饭店,

qps 是饭店的门口入口,如果饭店内已经坐满了,那么就触发限流,

具体后续怎么操作比如,是直接告诉顾客回去吧,还是排队那是饭店的策略

最大并发可以想象成后厨正在做饭的后厨团队,同时在给这个饭店做饭的是几个厨师,

也许做了100个客人点了红烧肉,其实规了只有5个厨师能做红烧肉,如果超过了那就触发限流

模拟图如下:

1.png

其实可以把qps 可以理解为spring boot 设置的maxconnections ,最大并发数理解为maxthreads ,只不过都是针对某资源而已


高级配置


流控模式-直接

1.png

直接模式就是当达到了设置的阈值就直接启动限流规则


流控模式-关联


1.png

关联模式是某一资源依赖其他资源或者内部请求依赖,比如fegin请求等,可以直接对内部依赖资源进行限流,当内部资源被先溜了,那么外部依赖资源也同样进行限流
比如我们订单创建请求依赖库存查询请求,比如/order -> /queryStock ,如果/queryStock 限流了那么/order 同时进行限流,如下图

1.png

流控模式-链路


1.png

链路模式和关联模式有点反过来的意思,比如上面关联模式,是被依赖的限流了,则入口端也同时限流,链路模式是设置某一入口,从指定设置入口请求的超过阈值被限流
比如 比如/order -> /queryStock ,/goodsStocks -> /queryStock 都请求了/queryStock,这次我们设置链路模式入口是/order ,则只有/order->/queryStock 这个请求会被限流,如下图

1.png

流控效果-快速失败


1.png

快速失败,字面意思,触发限流后直接返回sentinel blocked 或者自定义返回数据提示限流了


流控效果-Warm Up


字面意思看起来不太明白,可以举个例子就很好理解了
电商的秒杀活动,我们阈值如果设为了10,在秒杀开始之前很可能一直保持0请求,
在秒杀活动开始后,可能瞬间就会达到10触发流控,这时候其实对系统是很不友好的,因为很多数据可能还没来得及初始化或者设备没有唤醒就崩溃了
比如一些商品缓存,瞬间访问的时候可能商品信息还没有缓存完毕,
所以针对这种情况,有了预热效果,例如我设置了阈值是10,预热时长是5,系统默认的初始化阈值时3,
也就是说明。我们希望,5秒内阈值从3到10 
第一秒是每秒递增量(10-3)/5 = 1.4 ,加上当前阈值 3 = 4.4
第二秒就是4.4 +1.4 = 5.8
第三秒就是5.8 +1.4 = 7.2
第四秒就是7.2 +1.4 = 8.6
第五秒就是8.6 +1.4 = 10 .刚好达到设定阈值,大体曲线图如下

1.png

流控效果-排队等待


1.png

等待排队顾名思义,就是所有请求都是平滑一个个通过,比如我们qps设置2,那么按照秒切割就是500ms通过一个请求,效果图如下

1.png

目录
打赏
0
0
0
0
18
分享
相关文章
Spring框架初识
Spring 是一个分层的轻量级开源框架,核心功能包括控制反转(IOC)和面向切面编程(AOP)。主要模块有核心容器、Spring 上下文、AOP、DAO、ORM、Web 模块和 MVC 框架。它通过 IOC 将配置与代码分离,简化开发;AOP 提供了声明性事务管理等增强功能。
90 21
Spring框架初识
Spring MVC 扩展和SSM框架整合
通过以上步骤,我们可以将Spring MVC扩展并整合到SSM框架中。这个过程包括配置Spring MVC和Spring的核心配置文件,创建控制器、服务层和MyBatis的Mapper接口及映射文件。在实际开发中,可以根据具体业务需求进行进一步的扩展和优化,以构建更加灵活和高效的企业级应用程序。
31 5
DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集
诚挚地感谢每一位持续关注并使用 Higress 和 Spring AI Alibaba 的朋友,DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集中。
164 16
Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手
第二届开放原子大赛 Spring AI Alibaba 应用框架挑战赛决赛于 2 月 23 日在北京圆满落幕。
支持 40+ 插件,Spring AI Alibaba 简化智能体私有数据集成
通过使用社区官方提供的超过 20 种 RAG 数据源和 20 种 Tool Calling 接口,开发者可以轻松接入多种外部数据源(如 GitHub、飞书、云 OSS 等)以及调用各种工具(如天气预报、地图导航、翻译服务等)。这些默认实现大大简化了智能体的开发过程,使得开发者无需从零开始,便可以快速构建功能强大的智能体系统。通过这种方式,智能体不仅能够高效处理复杂任务,还能适应各种应用场景,提供更加智能、精准的服务。
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
302 1
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
255 6
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
116 1