【SpringCloud Alibaba】Sentinel流控规则

news2024/11/24 14:24:06

概念

流控规则

直接(默认)

QPS+快速失败

线程数+直接控制

QPS+Warming up

QPS+排队等待

关联

链路


具体启动Sentinel的步骤可以参考我的上一篇文章。

概念

资源名:唯一名称,默认请求路径

针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default (不区分来源)

阅值类型单机阅值:
        QPS(每秒钟的请求数量):当调用该api的QPS达到值的时候,进行限流
        线程数:当调用该api的线程数达到阔值的时候,进行限流

是否集群:不需要集群

流控模式:
        直接:api达到限流条件时,直接限流
        关联:当关联的资源达到闻值时,就限流自己
        链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阔值,就进行限流)[api级别的针对来源]
流控效果:
        快速失败:直接失败,抛异常
        Warm Up(预热):根据codeFactor (冷加载因子,默认3) 的值,从闻值/codeFactor,经过预热时长,才达到设置的QPS闽值
        排队等待:匀速排队,让请求以匀速的速度通过,阔值类型必须设置为QPS,否则无效

流控规则

直接(默认)

控制层方法如下:

@RestController
public class SentinelController {

    @GetMapping("/testA")
    public String testA(){
        return "Sentinel testA run";
    }

    @GetMapping("/testB")
    public String testB(){
        return "Sentinel testB run";
    }
}

QPS+快速失败

通过地址栏输入:localhost:8401/testA

测试发现当每秒刷新页面的次数大于1则会弹出以下页面(表示限流),否则正常

线程数+直接控制

        而直接控制的线程数设置为1表示如果超过一个页面访问此连接那就会限流否则正常。这里就不再对线程数做测试了

QPS+Warming up

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

举例:当预热时长=8,QPS单机阈值=3

  • 当并发请求到达的时候,实际的单机阈值是:QPS单机阈值配置 / coldFactoer= 3 / 3 =1,也就是每秒钟只能一个请求访问成功。
  • 预热时长为8秒,实际的单机阈值在8秒钟内逐步由1 -> 2 -> 3,最终等于QPS单机阈值配置。
  • 这里有一个注意点是QPS单机阈值一定要大于或等于3否则会一直请求不成功 

QPS+排队等待

        排队等待方式会严格的控制请求通过的间隔时间,就是让请求匀速的通过,对应的是漏桶算法。

言简意赅:QPS对应每秒处理的线程为1,超时时间表示超过10s则不接受其他线程的请求。也就是说将超时时间(ms) / 单机阈值(s/个) = 线程通过数

关联

        使用了testA关联testB那么当二者其一越界了即二者其一或者触犯了阈值规则,那么规则的时长内QPS内testA是无法访问的,换句通俗易懂的就是:其中一个犯错,testA就得扛锅。但要注意的是不是永久失效,只是阈值内失效。

链路

        与关联相反。两者之一犯错,那么就是入口资源背锅。

 关联与链路的区别

关联:

配置: “查询订单” 关联 “下单” 接口, 当"下单"到达阈值, 限流"查询订单"接口

链路:
配置: “查询订单”为入口时, 当"查询订单"到达阈值时, 限流"查询订单"

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

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

相关文章

微服务系列之远程服务调用

随笔 对自己不满是任何有才能的人的根本特征 参考书籍: “凤凰架构”“微服务架构设计模式” 本篇文章开始之前提示一下,读者带着“IPC与RPC的有什么区别”疑惑读效果更好 引言 从架构师的角度来看,微服务架构的落地实现第一个需要解决问…

改良型新药之详细分类

随着一类新药开发越来越困难、仿制药竞争激烈,改良型新药被认为符合我国医药企业转型升级的方向,吸引了更多企业切入,本文也将针对改良型新药的6个常见共性问题给予解答,涉及科普、专利、分类、临床价值、立项、注册申请、数据统计…

windows@网络防火墙@软件联网控制

文章目录ref打开防火墙控制面板常用部分限制某个软件联网文档参考具体操作取消控制/禁用第三方软件控制ref (Windows) 创建出站端口规则 | Microsoft LearnWindows Defender Firewall with Advanced Security (Windows) | Microsoft Learn组策略 Windows) 高级安全性的 Window…

你可能不知道的DOM断点调试技巧

前言 作为一个前端,DOM断点应该是我们非常熟悉的,也是我们日常工作中经常要用到的一种调试技巧;但是下面这些DOM断点调试技巧你可能不知道,且听我一一道来。 监听元素 有这样一种场景,当DOM中某个元素移除或者元素属…

再学C语言14:基本运算符

C使用运算符(operator)代表算数运算 一、赋值运算符(assignment operator): 在C中,符号并不表示“相等”,而是一个赋值运算符 year 2022; 符号左边是一个变量名,右边是赋给该变…

arraybuffer的应用,下载图片/文件等

在这篇文章中,我们了解了js中arraybuffer是用来存储二进制缓存的,但是都是理论知识,本篇文章来介绍一个arraybuffer应用的场景。 主要应用场景是下载文件,在ajax请求中,设置responseType arraybuffer 得到一个二进制…

零刻 SEi12 Pro,ALL IN ONE搭建教程

一台mini的NUC能做什么?当然每个人的心里都会有着不同的答案,既然是一台Mini主机那就肯定少不了部署一个All-In-One来榨干他的性能。今天我就大家带来一个部署All-In-One的详细教程,希望能够对大家有帮助。 我这台机器配置是i5-1240P 16G内存…

【mpvue】mpvue-echarts echarts动态渲染、延迟加载、双轴动态计算、双轴对齐

mpvue-echarts 双轴折线案例使用echarts双轴折线图实战项目导入一、打包结果超过小程序大小限制?1.下载自定义echarts.js2. 引入 echarts.js![在这里插入图片描述](https://img-blog.csdnimg.cn/ff4ad6d894404e97bceff0581fc1f736.png#pic_center)3. 项目引入二、图…

蓝桥杯备赛Day4——多维数组

二维数组初始化 p[[0 for i in range(5)] for j in range(2)] #法一 p[[0]*5 for j in range(2)] #法二 s[[1,2,3],[4,5,6]] print(s) for i in range(2):for j in range(3):print(s[i][j],end ) 三维数组初始化 a[[[0 for _ in range(2)] for __ in…

RabbitMQ总结

目录 工作模式 简单模式 工作队列模式 发布订阅模式 路由模式 通配符模式 SpringBoot整合RabbitMQ 项目搭建 配置类中创建队列和交换机 编写生产者 编写消费者 消息的可靠性传递 死信队列 延迟队列 工作模式 RabbitMQ共有六种工作模式:简单模式(Si…

网络编程 select模型

目录 select模型详解 select函数解释 整体代码 select模型在代码上和c/s模型的前面一部分是一样的,可以去看 这个https://blog.csdn.net/weixin_62859191/article/details/128397927?spm1001.2014.3001.5501,相同的代码如下 #define _CRT_SECURE_NO_…

cadence SPB17.4 - orcad - WARNING(ORCAP-2354) - Wire is hanging at Point

文章目录cadence SPB17.4 - orcad - WARNING(ORCAP-2354) - Wire is hanging at Point概述普通画法, 引起的不可理解的hang wire 警告ENDcadence SPB17.4 - orcad - WARNING(ORCAP-2354) - Wire is hanging at Point 概述 在使用SPB17.4从一个PCB中反推原理图. 原理图重建的差…

Jenkins入门(一)Jenkins介绍、GitLab基础环境安装

视频学习地址:01-Jenkins教程简介_哔哩哔哩_bilibili 一、介绍: Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。 它替代了管理员手动集成、构建、测试,提交代码后自…

深度学习:ResNet从理论到代码

深度学习:ResNet从理论到代码面临的问题模型退化问题ResNet核心思想反向传播公式推导残差的由来残差模块为什么效果好代码实现面临的问题 模型退化问题 随着网络层数加深,性能逐渐降低,但它并不是过拟合,因为在test error降低的同…

多准则决策问题评估方法 | 灰云模型(含代码)

目前多准则决策问题的评估方法主要分为定性分析方法和定量分析方法两类。定性分析方法主要包括专家咨询、熵权法、案例研究和德尔菲法等;定量分析法主要包括层次分析法、主成分分析法、因子分析法、模糊综合评价法、灰色综合评价法以及数据包络分析法(DE…

Apollo星火计划学习笔记——Apollo路径规划算法原理与实践

文章目录1. 路径规划算法总体介绍1.1 Task: LANE_CHANGE_DECIDER1.2 Task: PATH_REUSE_DECIDER1.3 Task: PATH_BORROW_DECIDER1.4 Task: PATH_BOUNDS_DECIDER1.5 Task: PIECEWISE_JERK_PATH_OPTIMIZER1.6 Task&#xf…

人脸识别经典论文Arcface解读

来源:投稿 作者:小灰灰 编辑:学姐 研究背景 1、在人脸识别时,我们需要特征的discrimination 2、之前提出到的一些方法,如triplet loss,center loss, L-softmax,a-softmax都有一些缺陷。 3、centerloss:提…

2022.12.25 学习周报

文章目录摘要文献阅读1.题目2.摘要3.问题和方案4.介绍5.Attention Transfer5.1 Activation-based Attention Transfer5.2 Gradient-based Attention Transfer6.实验7.结论深度学习Attention机制的本质Encoder to Decoder抛开encoder-decoderAttention函数工作机制Attention机制…

20221225 海豚调度2.0.5连接星环库使用记录

阳阳的一周,算是挺过来了,现在只剩感冒了,迷迷糊糊的干了一周,混口饭吃不容易呀!简单记录一下遇到的问题吧! 连接hive(星环)数据库失败 方案一 : 海豚调度2.0.5使用的hive包是2.0版本,星环库包…

云原生之部署wordpress博客及设置圣诞主题风格

2022年圣诞节到来啦,很高兴这次我们又能一起度过~ CSDN诚邀各位技术er分享关于圣诞节的各种技术创意,展现你与众不同的精彩!参与本次投稿即可获得【话题达人】勋章【圣诞快乐】定制勋章(1年1次,错过要等下一年喔&#…