Sentinel的另外三种流控模式(附代码详细介绍)

article/2025/8/24 16:47:36

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将详细介绍Sentinel的其他三种流控模式,后续文章将详细介绍Sentinel的其他知识。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
小威在此先感谢各位大佬啦~~🤞🤞
在这里插入图片描述

🏠个人主页:小威要向诸佬学习呀
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉:24届毕业生,在一家满意的公司实习👏👏

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

在这里插入图片描述

以下正文开始

文章目录

  • 预热模式
  • 排队等待模式
  • 热点规则

在这里插入图片描述

预热模式

Sentinel的warm up模式是一种流量控制模式,它可以在系统刚启动的时候,通过预热的方式逐步放开限流的限制,让系统逐步达到稳定状态,避免系统启动时因为限流过于严格而导致的性能问题。

具体来说,Sentinel的warm up模式会在系统启动时,先限制一定的流量,然后逐步放开限制,直到系统达到一个稳定的状态。在逐步放开限制的过程中,Sentinel会根据系统的实际情况,动态调整限制的值,以确保系统的稳定性和性能

在实际应用中,可以通过以下代码来使用Sentinel的warm up模式:

public class WarmUpDemo {public static void main(String[] args) {// 创建一个规则实例FlowRule rule = new FlowRule();rule.setResource("test");rule.setGrade(RuleConstant.FLOW_GRADE_QPS);rule.setCount(10);rule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_WARM_UP);rule.setWarmUpPeriodSec(10);rule.setMaxQueueingTimeMs(500);// 加载规则List<FlowRule> rules = new ArrayList<>();rules.add(rule);FlowRuleManager.loadRules(rules);// 定义资源Entry entry = null;try {entry = SphU.entry("test");// 执行业务逻辑// ...} catch (BlockException e) {// 处理限流// ...} finally {if (entry != null) {entry.exit();}}}
}

在上述代码中,我们创建了一个FlowRule实例,将其控制行为设置为CONTROL_BEHAVIOR_WARM_UP,表示使用Sentinel的warm up模式。同时,我们还设置了warmUpPeriodSec参数,表示预热的时间为10秒。在执行业务逻辑时,我们使用SphU.entry方法来获取资源的Entry实例,并在try-catch-finally语句块中处理限流和资源释放的逻辑。

需要注意的是,使用Sentinel的warm up模式需要根据实际情况调整预热时间和限制的值,以确保系统的稳定性和性能

在这里插入图片描述

排队等待模式

Sentinel的排队等待模式是一种流量控制模式,它可以在流量超出阈值时,将请求放入队列中进行等待,直到系统处理完之前的请求后再进行处理。这种模式可以避免系统因瞬间流量过大而崩溃的情况。

在Sentinel中,排队等待模式需要配置一个等待队列的大小,当流量超过阈值时,请求就会被放入等待队列中。同时,还需要配置一个等待时间,如果请求在等待队列中等待的时间超过了设定的等待时间,那么请求将会被直接拒绝

下面是一个使用Sentinel的排队等待模式的代码示例:

@SentinelResource(value = "test", blockHandler = "handleBlock")
public String test() {// 方法实现
}public String handleBlock(BlockException ex) {// 处理被拒绝的请求return "请求被拒绝,请稍后再试";
}

在上面的代码中,@SentinelResource注解用于标识该方法需要进行流量控制。blockHandler参数指定了当请求被拒绝时的处理方法。如果使用排队等待模式,那么可以在@SentinelResource注解中添加waitQueuemaxQueueingTimeMs参数来配置等待队列的大小和等待时间:

@SentinelResource(value = "test", blockHandler = "handleBlock", waitQueue = true, maxQueueingTimeMs = 5000)
public String test() {// 方法实现
}

在上面的代码中,waitQueue参数设置为true表示开启排队等待模式,maxQueueingTimeMs参数设置为5000表示等待时间为5秒。这样,当请求被拒绝时,它就会被放入等待队列中等待处理。如果等待时间超过了5秒,请求将会被直接拒绝。

热点规则

Sentinel的热点规则是一种特殊的限流规则,用于对系统中的热点资源进行限流。热点资源是指在系统中访问频率较高或者访问量较大的资源,例如某个接口、某个方法等。如果这些热点资源没有得到有效的限流控制,就容易导致系统崩溃或者性能下降

Sentinel的热点规则可以通过以下几个方面来进行限流控制:

  1. 参数限流:根据指定的参数进行限流,例如根据某个接口的请求参数进行限流。

  2. URL限流:根据URL进行限流,例如对某个接口的请求URL进行限流。

  3. IP限流:根据IP地址进行限流,例如对某个IP地址的请求进行限流。

  4. 关联流控:根据某个关联的资源进行限流,例如对某个接口的关联接口进行限流。

Sentinel的热点规则可以通过以下几个参数进行配置:

  1. resource:热点资源的名称,可以是接口名称、方法名称、URL等。

  2. count:限流阈值,表示在一个时间窗口内允许通过的请求次数。

  3. paramIndex:参数索引,表示要进行参数限流的参数在请求中的索引位置。

  4. grade:限流模式,可以是QPS模式或线程数模式。

  5. durationSeconds:时间窗口大小,表示限流的时间窗口大小,单位为秒。

  6. controlBehavior:流控模式,可以是快速失败模式、排队等待模式等。

  7. burstCount:预热时的突发流量,表示在预热阶段允许通过的最大请求次数。

总的来说,Sentinel的热点规则可以根据业务需求进行灵活配置,有效地对系统中的热点资源进行限流控制,保证系统的稳定性和性能。

好了,本篇文章就先分享到这里了,后续将会继续介绍sentinel详细的其他方面的知识,感谢大佬认真读完支持咯~
在这里插入图片描述

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起讨论😁
希望能和诸佬们一起努力,今后我们顶峰相见🍻
再次感谢各位小伙伴儿们的支持🤞

在这里插入图片描述


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

相关文章

Sentinel限流--流控模式与限流效果

文章目录 1、簇点链路2、流控入门案例3、流控模式&#xff1a;关联模式4、流控模式&#xff1a;链路模式5、流控效果&#xff1a;warm up6、限流效果&#xff1a;排队等待7、热点参数限流 1、簇点链路 簇点链路就是项目内的调用链路&#xff08;controller -> servcie ->…

【sentinel】流控规则详解

流量控制规则&#xff0c;简称流控规则&#xff0c;会对资源的流量进行限制。同一个资源可以对应多条限流规则。Sentinel会对该资源的所有限流规则依次遍历&#xff0c;直到有规则触发限流或者所有规则遍历完毕。 限流的直接表现是抛出FlowException异常。FlowException是Bloc…

Sentinel流控规则

Sentinel流控规则 1、基本介绍 资源名&#xff1a;唯一名称&#xff0c;默认请求路径(如&#xff1a;http://localhost:8089/testA) 针对来源&#xff1a;Sentinel可以针对调用者进行限流&#xff0c;填写微服务名&#xff0c;指定对哪个微服务进行限流 &#xff0c;默认defa…

流控方案

不同的场景下所需的流控算法不尽相同&#xff0c;那应该如何选择适用的流控方案呢&#xff1f;本文分享单机及分布式流控场景下&#xff0c;简单窗口、滑动窗口、漏桶、令牌桶、滑动日志等几种流控算法的思路和代码实现&#xff0c;并总结了各自的复杂度和适用场景。较长&#…

流控机制的解析

流控是以太网的一项基本功能&#xff0c;可以防止在端口拥塞的情况下出现丢帧。在深入分析之前&#xff0c;先看一个简单的应用场景&#xff1a; 端口A和B接收报文&#xff0c;端口C向外转发报文。如果端口A和B的收包速率之和大于端口C的带宽&#xff0c;那么部分报文就会缓存在…

Sentinel 三种流控效果

文章目录 流控效果1.快速失败2.warm up1&#xff09;配置流控规则&#xff1a;2&#xff09;Jmeter测试 3.排队等待1&#xff09;添加流控规则2&#xff09;Jmeter测试 .总结 流控效果 我们先来回顾一下流控模式有哪些&#xff1a; 流控模式说明直接统计当前资源的请求&#…

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

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

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

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

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

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

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

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

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

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

客户主数据

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

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

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

BP 供应商主数据

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

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

什么是主数据&#xff1f;有什么作用&#xff1f; 在说主数据之前&#xff0c;我们先来看一个场景再来看一个行业趋势到底什么是主数据&#xff1f;为什么说主数据管理是一切工作的起点&#xff1f;为了应对这些问题&#xff0c;我们需要引进主数据管理&#xff08;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企主数据方案分享 &#xff08;一&#xff09;&#xff1a;主数据现状、问题分析及客户诉求 J企的主数据实施业务方案已经签署&#xff0c;主数据平台开发方案也基本敲定&#xff0c;接下来推进历史数据规整方案和各业务系统优化方案的制定。 在此与各位同学分享主数据方案…

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

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

数仓建模—主数据管理

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

主数据项目交付最佳实践

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