SpringCloud alibaba-Sentinel服务降级策略

springboot接入sentinel限流、降级熔断 快速接入sentinel文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel 1.引入jar包 com.alibaba.cloud spring-cloud-starter-alibaba-sentinel 2.配置文件增加配置: 2.1 #设置sentinel控制台地址 spring.cloud.sentinel.transport.port=8719 spring.cloud.sentinel.transport.dashb 阅读详情

在这里插入图片描述

RT:

平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 N 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出 DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项 -Dcsp.sentinel.statistic.max.rt=xxx 来配置。

在这里插入图片描述

上图表示 需要1s持续进入5个请求,并且 平均响应时间大于 阈值,才会触发降级,打开断路器,等时间窗口结束,再关闭降级

1、添加testD接口,接口中设置1秒睡眠时间,即模拟响应时间为1s

    @GetMapping("/testD")
    public String testD()
    {
        try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}
        log.info(Thread.currentThread().getName()+"\t"+"...testD 测试RT");
        return "------testD 测试RT";
    }

2、Sentinel-dashboard中进行接口testD的RT设置,需要先请求一次testD,要不然dashboard中不会出现,设置降级策略为RT,RT值为200毫秒,时间窗口之降级时间间隔为1s,单位是秒
在这里插入图片描述
3、通过Jmeter做压力测试,设置请求testD接口,1秒内10个线程请求,永远循环

在这里插入图片描述
4、先请求一次testD接口没问题,再开启Jmeter压测,再浏览器请求一次testD发现已经快速失败了

在这里插入图片描述
5、测试结果表明RT策略成功,因为一秒10个线程请求满足了 RT的一秒5个请求,然后testD休眠1s满足了RT策略里的200ms阈值,所以能测试成功。

永远一秒钟打进来10个线程(大于5个了)调用testD,我们希望200毫秒处理完本次任务,
如果超过200毫秒还没处理完,在未来1秒钟的时间窗口内,断路器打开(保险丝跳闸)微服务不可用,保险丝跳闸断电了。后续我停止jmeter,没有这么大的访问量了,断路器关闭(保险丝恢复),微服务恢复OK

异常比例:

异常比例 (DEGRADE_GRADE_EXCEPTION_RATIO):当资源的每秒请求量 >= N(可配置),并且每秒异常总数占通过量的比值超过阈值(DegradeRule 中的 count)之后,资源进入降级状态,即在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

在这里插入图片描述

上图表示 QPS>=5 且异常比例超过阈值,触发降级,打开断路器,等时间窗口结束,再关闭降级

1、添加testF接口,接口中设置10/0,即模拟运行时异常

    @GetMapping("/testF")
    public String testF()
    {
        log.info(Thread.currentThread().getName()+"\t"+"...testF 测试 异常比例");
        int i = 10/0;
        return "------test 测试 异常比例";
    }

2、Sentinel-dashboard中进行接口testD的 异常比例 设置,设置降级策略为 异常比例 ,异常比例为0.2即20%,时间窗口为3s
在这里插入图片描述
3、通过Jmeter进行压测,设置请求testF接口,1秒内10个线程请求,永远循环

在这里插入图片描述4、先请求一次testF接口,会报by zero异常,当开启Jmeter压测后,再访问testF会快速失败,等关闭Jmeter后,再请求接口,又会报by zero异常
在这里插入图片描述
5、按照上述配置,单独访问一次,必然来一次报错一次(int age = 10/0), 调一次错一次;

开启jmeter后,直接高并发发送请求,多次调用达到我们的配置条件了。断路器开启(保险丝跳闸),微服务不可用了,不再报错error而是服务降级了。等关闭jmeter后,又恢复了,所以又请求一次报错一次

异常数:

异常数 (DEGRADE_GRADE_EXCEPTION_COUNT):当资源近 1 分钟的异常数目超过阈值之后会进行熔断。注意由于统计时间窗口是分钟级别的,若 timeWindow 小于 60s,则结束熔断状态后仍可能再进入熔断状态。

异常数是按分钟来统计的,所以时间窗口必须大于等于60s
在这里插入图片描述
上图就是表示,在一分钟内统计异常数超过阈值了,然后出发降级,打开断路器,等时间长款结束,关闭降级

1、添加testE接口,接口中设置10/0,即模拟运行时异常

    @GetMapping("/testE")
    public String testE()
    {
        log.info(Thread.currentThread().getName()+"\t"+"...testE 测试 异常数");
        int i = 10/0;
        return "------testE 测试 异常数";
    }

2、在sentinel-dashboard中设置testE的降级策略为异常数,异常数为5,时间窗口为70s
在这里插入图片描述
3、请求接口testE,请求一次为by zero异常,请求两次也是报错,等请求到五次后就会出现服务降级,直接快速失败,等超过70s窗口期后,再请求testE,又会开始 异常数策略统计
在这里插入图片描述
至此,Sentinel中的服务降级 三种策略 RT、异常比例、异常数的demo演示案例上述已经演示完毕~~~~

SpringCloud Alibaba - 基于 FeignClient 整合 Sentinel,实现“线程隔离”和“熔断降级” 熔断降级就是通过一个短路器取统计服务调用的时候 “异常比例、慢调用比例、异常数量”,比如说统计的是异常比例,那么如果异常比例过高,触发了阈值就会熔断该服务,这样就把故障的服务隔离开了.这就像是古代的武侠人士,手被毒蛇咬了,赶紧手起刀落,把手砍断,防止毒扩散到全身,但是这把手砍了算不了什么本事啊,能接回来才是真本事.而 Sentinel 就可以在服务恢复时,让熔断器放行访问该服务的请求. 阅读详情

相关推荐

ONNC Open Neural Network Compiler 开源神经网络编译器 一个 开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)部署导入ONNX模型

ONNC是一个集合了开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)。ONNC从底层开始构建,旨在将ONNX中间表示(IR)翻译成专有DLA代码。其软件架构设计强调可移植性和可重用性,从而简化了开发新后端的工作。上图展示了ONNC软件栈的顶层框图。软件栈从导入ONNX计算图模型到输出相应的硬件二进制文件,展示了各个功能块。

万有文的博客 1995

Sentinel 降级策略

代码注解类似于Hystrix中的注解注解中有两个属性需要我们进⾏区分,blockHandler属性来指定不满足Sentinel规则的降级兜底⽅法,fallback属性用于于指定Java运行时异常兜底方法。

程序猿 620

MMORPG网络游戏开发之任务系统的架构与设计

在网路游戏中做任务已经成为游戏很重要的一个核心功能和玩法,如何做好一个灵活可扩展的任务系统的架构与设计,今天来给大家分享一些我们的设计经验。接下来我把整个的任务系统分成以下6个模块:对于单机游戏而言,这6个模块都放在客户端直接处理,对于网路游戏而言,模块1~5实现在服务端,模块6实现在客户端。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。...

voidinit的专栏 3049

【原理/Sentinel】RT降级策略原理

在1.8.0之前的版本中,Sentinel的降级策略可以选择RT,也就是平均响应时间的降级策略。从网上也能了解到基本规则就是:平均响应时间 (DEGRADE_GRADE_RT):当资源的平均响应时间超过阈值(DegradeRule 中的 count,以 ms 为单位)之后,资源进入准降级状态。

1341

PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)java

PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)java 小博是新城小学二年级学生,这孩子人很老实,数学、语文成绩都是中等。不过一旦坐在电脑前,写起代码来,则有些霸气侧漏,尤其擅长各种暴力方法。本题就是数学莫老师的题目之一,请你和小博一起暴力求解吧。 输入格式: 第一行给出这个和N(图中例子的和N为2000)。 输出格式: 第一行输出所有解的数目K,随后K行按照DCBA 4位数字从...

qryzhfj的博客 2188

用R语言做WGCNA分析全步骤一(附代码解读)【转载】

代码逐句分析一、文章来源二、基因共表达网络构建及模块识别1.数据导入、清洗及预处理2.检查过度缺失值和离群样本3.聚类做离群样本检测4.载入临床特征数据三、自动构建网络及识别模块1.确定合适的软阈值:网络拓扑分析2.一步构建网络和识别模块 一、文章来源 初学WGCNA,觉得博主的代码写的很不错,但其中很多代码在第一遍看的时候有很多地方不理解,后查阅了很多资料,终于看明白了,于是写了一篇笔记,记录自己的学习心得,有不准确的地方,还望各位大佬们不吝赐教~ 原文链接:WGCNA简明指南 二、基因共表达网络构建及模

qq_43138237的博客 2万+

Spring Cloud Alibaba整合Sentinel进行服务熔断降级

Spring Cloud Alibaba整合Sentinel进行服务熔断降级

chenguixu的博客 1093

GD-Link离线烧录全攻略:从配置到一键下载的保姆级教程

本文详细介绍了GD-Link离线烧录的全流程,从硬件准备到软件配置,再到一键下载的实战技巧。通过保姆级教程,帮助工程师快速掌握国产MCU的离线烧录技术,适用于产线批量烧录和现场设备维护等场景,显著提升工作效率。

ww90123的博客 652

SpringCloud Alibaba之Sentinel服务降级策略实战-RT、异常比例、异常数

RT: 平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 N 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule中的timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项-Dcsp.sentinel.s...

TOP__ONE的博客 2089

【墨者学院 】uWSGI 漏洞复现(CVE-2018-7490)

0x01 漏洞详情 uWSGI是一款Web应用程序服务器,它实现了WSGI、uwsgi和http等协议。 uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_ROOT检测。攻击者可通过发送带有‘…’序列的特制URL请求利用该漏洞查看系统上的任意文件。 uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_RO...

Summer's blog 1万+

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 423

SpringCloud Alibaba Sentinel三种服务降级策略,以及热点key降级

熔断降级 1, 降级-RT(平均响应时间) 降级要求:每秒钟请求数大于5个,且每个请求要在0.2秒内处理完。 后端代码:进行睡眠1秒钟 效果:先然0.2秒内处理不了一个请求,且进行压测,每秒发送10个请求。最后导致服务降级失败 2,降级-异常比例 表示在一定时间内,请求的异常次数不能占总请求次数的比例,且每个时间窗口内的请求数要大于5次,最后在设定的时间窗口结束后,关闭降级 后端代码: 测试效果:我们手动产生异常,很明显异常率100%大于20%,且进行压测,每秒发送10个请求。最后导致服务降级失败

zpf1813763637的博客 1963

PointNet++改进策略目录

后续我将如何使用文章中创新点加入的PointNet++中代码实现部分进行更新。

u012901740的博客 2196

SpringCloud Alibaba

return "按资源名称SentinelResource限流测试OK";return "服务不可用@SentinelResource启动"+"\t"+"o(╥﹏╥)o";这是Sentinel提供的注解,主要用于配置资源限流、降级、熔断等策略。:资源名称,用于标识当前方法的限流资源。Sentinel 使用这个资源名称来监控和控制该方法的流量。:指定一个方法来处理限流(或熔断)触发时的异常。具体来说,当资源超出流量限制时,Sentinel 会调用这个方法来处理业务逻辑。

qq_67177419的博客 944

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringCloud Alibaba服务熔断降级与限流之【Sentinel】

Sentinel: 分布式系统的流量防卫兵 下载sentinel-dashboard-1.7.2.jar,地址:https://github.com/alibaba/Sentinel/tags 运行jar包,访问localhost:8080,来到sentinel界面,账号密码都是sentinel 微服务整合sentinel 建模块cloudalibaba-sentinel-service8401 导依赖 <!-- SpringCloud ailibaba nacos--> <depen

K_kzj_K的博客 901

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringCloud学习之(十九)SpringCloud Alibaba Sentinel实现熔断与限流

文章目录(十九)SpringCloud Alibaba Sentinel实现熔断与限流1、Sentinel1.1 官网1.2 是什么1.3 去哪下1.4 能干嘛1.5 怎么玩2、安装Sentinel控制台2.1 sentinel组件由2部分组成:2.2 安装步骤3、初始化演示工程3.1 启动Nacos8848成功3.2 Module3.2.1 新建model3.2.2 POM3.2.3 YML3.2.4 主启动类3.2.5 业务类3.2.6 启动Sentinel80803.2.7 启动微服务84014、流控

lisa2017_的博客 368

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringCloud Alibaba Sentinel实现熔断与限流

博客参考学习视频: https://www.bilibili.com/video/BV18E411x7eT?from=search&seid=4388336378730572330 上一篇: SpringCloud Alibaba Nacos 服务注册和配置中心 SpringCloud Alibaba Sentinel实现熔断与限流 一、Sentinel ① 官网 英文: https://github.com/alibaba/Sentinel 中文:https://github.com/al.

OY 411

最新的SpringCloud(H版&Alibaba)技术(19高级部分,熔断与限流【Sentinel】)

十九、SpringCloud Alibaba Sentinel实现熔断与限流 二十、SpringCloud Alibaba Seata处理分布式事务 二十一、大厂面试题第三季 下一篇笔记:待更新 学习视频(p111-p):https://www.bilibili.com/video/BV18E411x7eT?p=111 ...

小楊同学的笔记本 5132

微服务SpringCloud开弓之SpringCloud Alibaba Sentinel实现熔断与限流「十四」

文章目录SpringCloud Alibaba Sentinel实现熔断与限流1、Sentinel2、安装Sentinel控制台3、初始化演示工程4、流控规则5、降级规则6、热点key限流1、基本介绍2、参数例外项7、系统规则8、@SentinelResource1、按资源名称限流+后续处理2、按照Url地址限流+后续处理3、客户自定义限流处理逻辑4、更多注解属性说明9、服务熔断功能Ribbon系列Feign系列熔断框架比较10、规则持久化 SpringCloud Alibaba Sentinel实现熔断与

python_start的博客 869

SpringCloud Alibaba Sentinel实现熔断与限流_学习笔记

SpringCloud Alibaba Sentinel实现熔断与限流 Sentinel: 分布式系统的流量防卫兵

滨海之君的博客 386

Spring Cloud Alibaba | Sentinel: 服务限流高级篇

目录 Spring Cloud Alibaba | Sentinel: 服务限流高级篇 1. 熔断降级 1.1 降级策略 2. 热点参数限流 2.1 项目依赖 2.2 热点参数规则 3. 系统自适应限流 ...

weixin_30652271的博客 147

spring cloud alibaba sentinel 流控,服务降级,服务熔断组件

一、 sentinel 主要特性 二、sentinel 的下载及安装 https://github.com/alibaba/Sentinel/releases 下载 sentinel-dashboard-1.7.0.jar 前提是 java8环境OK,8080端口未被占用。 启动 sentinel , java -jar sentinel-dashboard-1.7.0....

小米吃辣椒的博客 2167

Spring Cloud Alibaba 04_使用 Sentinel 实现服务限流降级熔断

Spring Cloud Alibaba 03_使用 Sentinel 实现服务限流降级熔断 雪崩效应 当服务A不可用时,服务B调用服务A的所有线程将处于阻塞状态,在高并发情况下,服务B中阻塞的线程越来越多,导致内存空间不足,致使服务B崩溃,同理,需要调用服务B的服务C也可能崩溃,这就是雪崩效应。 解决方案: 设置线程超时释放 设置服务限流 设置熔断器Hystrix、Sentinel 降级: 系统将某些非必要功能关闭,只提供关键功能 限流: 只接收系统能够承载的访问量 熔断: 切断对某个故障服务的调

BLU_111的博客 13万+

SpringCloud(第十八章 SpringCloud Alibaba Sentinel实现熔断与限流)

文章目录一、Sentinel二、安装Sentinel控制台三、初始化演示工程四、流控规则五、降级规则六、热点key限流七、系统规则八、@SentinelResource九、服务熔断功能十、规则持久化 一、Sentinel 二、安装Sentinel控制台 三、初始化演示工程 四、流控规则 五、降级规则 六、热点key限流 七、系统规则 八、@SentinelResource 九、服务熔断功能 十、规则持久化 ps:尚硅谷SpringCloud学习笔记 ...

qq_45087487的博客 2921

14、SpringCloud Alibaba第十四章,升级篇,服务降级、熔断和限流Sentinel

SpringCloud Alibaba第十三章,升级篇,服务降级、熔断和限流Sentinel 一、Sentinel概述 1、Sentinel是什么 随着...

倚书依杖听河流博客 268
上一篇: XXL-JOB分布式任务调度框架(三)-集群部署
下一篇: Sentinel自定义异常
熊猫IT技术
熊猫IT技术 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 6021粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫IT技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值