手把手带你领略双十一背后的核心技术Sentinel之服务的熔断降级
这种日子该到头了{这种日子该到头了}这种日子该到头了
代码来自:https://blog.csdn.net/Kevinnsm/article/details/117520719?spm=1001.2014.3001.5501
文章目录
- 1、为什么要进行服务降级?{1、为什么要进行服务降级?}1、为什么要进行服务降级?
- 2、熔断策略之慢调用比例{2、熔断策略之慢调用比例}2、熔断策略之慢调用比例
- 3、熔断策略之异常比例{3、熔断策略之异常比例}3、熔断策略之异常比例
- 4、熔断策略之异常数{4、熔断策略之异常数}4、熔断策略之异常数
1、为什么要进行服务降级?{1、为什么要进行服务降级?}1、为什么要进行服务降级?
现在的微服务架构是分布式的,由许多服务组成。服务之间的调用是错综复杂的,比如A调B,B调C,C调D等等;一旦某个模块出现了问题,可能就会出现级联效应,最终导致整个链路的不可用是。通过服务降级,将不稳定的服务进行熔断降级,避免整个链路的雪崩。这个降级是配置在客户端!
官网文档地址:https://sentinelguard.io/zh-cn/docs/circuit-breaking.html
2、熔断策略之慢调用比例{2、熔断策略之慢调用比例}2、熔断策略之慢调用比例
慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
以上是官网提供的,经过我的分析需要满足两个条件就会进行服务熔断降级!
1、请求的响应时间大于RT(设置的最大响应时间
2、单位统计时长内请求数目大于最小请求数目
实例分析
设置最大RT为200ms,意味着一旦请求响应超过这个时间就会被统计为慢调用,如果在统计时长1000ms内慢调用的数量大于了最小请求数5,则会进行服务的熔断降级(熔断时长为2s,过了两秒后会进行进入探测状态,若接下来的一个请求的响应时间小于RT,则结束熔断;否则继续进入熔断状态)
@GetMapping("/good")public String good() throws InterruptedException {Thread.sleep(1000);log.info("---------->"+Thread.currentThread().getName());return "good";}
设置线程暂停1s,那么由于我上面设置的RT为0.2s,所以每次都会超时。100%会进行熔断降级
使用JMeter进行测试
零基础带你入门JMeter-模拟高并发接口测试,小白教程!:https://blog.csdn.net/Kevinnsm/article/details/117302197?spm=1001.2014.3001.5501
开始测试
由于我设置的是一直循环访问,所以可以得出只要不关闭JMeter,那么/good接口将一直处于熔断状态,怎么得出来呢?同时通过浏览器访问
当结束JMeter,然后通过浏览器访问
3、熔断策略之异常比例{3、熔断策略之异常比例}3、熔断策略之异常比例
异常比例 (ERROR_RATIO):当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。
也就是满足两个条件就会发生熔断降级
1、请求数大于设置得最小请求数目
2、异常得比例大于设置得阈值
如下图分析
当在1000ms统计时长内,如果异常比例大于0.8,且请求数大于5,则进行熔断降级
代码模拟
@GetMapping("/good")public String good() {int a = 1 / 0;log.info("---------->"+Thread.currentThread().getName());return "good";}
我故意将其1/0报异常!{我故意将其1/0报异常!}我故意将其1/0报异常!
使用JMeter测试
每次10个请求数,一直循环访问{每次10个请求数,一直循环访问}每次10个请求数,一直循环访问
运行
从响应数据可以看出已经进入了熔断状态!
循环访问过程中从浏览器进行访问
当结束JMeter循环访问,然后浏览器访问,发现已经结束了熔断状态!
4、熔断策略之异常数{4、熔断策略之异常数}4、熔断策略之异常数
异常数 (ERROR_COUNT):当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。
1、单位统计时长内异常数超过设置的异常数阈值
2、请求数大于设置得最小请求数
如上图所示,在1000ms内,如果异常数大于3,且请求数大于5;则发生熔断降级!
JMeter进行测试,一直循环访问
可以看出已经熔断降级,当我停掉JMeter之后,浏览器访问该API报出异常!
手把手带你领略双十一背后的核心技术Sentinel之服务的熔断降级相关推荐
- 手把手带你领略双十一背后的核心技术Sentinel之热点参数限流
文章目录 1.何为热点 2.基本使用1 3.基本使用2 1.何为热点 热点就是经常访问的数据,我们通常希望对某个访问次数最高的热点数据进行限制. 比如说商品中的某个访问量很高的商品.比如说商品中的某个 ...
- 手把手带你领略双十一背后的核心组件Sentinel之流控规则
文章目录 1.Sentinel相关概念的介绍 1.1.什么是流控规则?{1.1.什么是流控规则?}1.1.什么是流控规则? 1.2.什么是QPS?{1.2.什么是QPS?}1.2.什么是QPS? 1. ...
- 手把手带你领略graphql的魅力
背景介绍 当谈论到客户端与服务端之间的网络请求时,REST 绝对是连接两者的方案中最流行的选择.在 REST 中,所有概念都是可以通过 URL 可访问的资源演化而来的.你可以通过一个 HTTP GET ...
- 手把手带你领略自动执行任务的快感
文章目录 前言 一:程序,进程,线程之间的关系 1.1:进程概述 1.2:应用程序,进程和线程的关系 1.2.1:程序和进程的关系 1.2.2:进程和线程的关系 二:查看进程 2.1:静态查看 ps命 ...
- 深度解析双十一背后的阿里云 Redis 服务
在一片欢呼之中,2018年的双十一完美收官,各项数据不出意外的刷出了新的记录,亮眼的数据背后是阿里过硬的技术支撑.其中阿里云Redis不仅保障了阿里集团内部业务双十一的流量洪峰平稳度过,也让使用阿里云 ...
- 北京活动 | 新书首发手把手带你的产品从0开始验证一个新的业务
产品之力正在爆发的互联网革命 深入浅出讲解互联网领域如何从0开始验证一个新的业务并最终取得成功的广大案例 结合经济学.社会学.心理学.人机交互学.设计学等知识总结出的完整方法论 适合在工作中遇到瓶颈的 ...
- linux 中国-新手村,从新手村开始,手把手带你入门梳理内核代码
原标题:从新手村开始,手把手带你入门梳理内核代码 在上一期内容中,Java离Linux内核有多远? 我们介绍了从 JVM 到内核的编译原理,告诉大家应用和系统工程师如何接触到内核. 本文将 从一个简单 ...
- Google全新AI实战课发布:从原理到代码,手把手带你入门机器学习
安妮 岳排槐 发自 凹非寺 量子位 出品 | 公众号 QbitAI 如果你的心里只有一件事. 请问:是不是学习? Google希望你是,而且还准备扶上马,再送一程. 所以今天一早,大礼包又来了. ...
- 手把手带你学会Odoo OWL组件开发(5):浅析OWL原理
[本系列内容直达:] 手把手带你学习Odoo OWL组件开发(1):认识 OWL 手把手带你学会Odoo OWL组件开发(2):OWL的使用 手把手带你学会Odoo OWL组件开发(3):核心内容指南 ...
最新文章
- 总结:Apache架构师30条架构原则
- 【AI呀,我去】科技圈顶流——元宇宙上线,快来揭开它的神秘面纱
- python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF
- 数据库-优化-索引-索引的优化
- 1×pbs缓冲液配方_PBS缓冲液的配制
- C++ class、struct区别
- 正则表达式 Mather类的使用
- java禁止修改map_Java中实现不可变Map
- Linux常用命令——chattr、lsattr
- 【kafka】kafka 发送数据 发送失败 回调函数 怎么能记录异常的消息内容
- 8-2 主从复制高可用
- arts-week12
- c语言自建一个窗口,C语言 手把手教你写个自定义printf
- 求贤令|诚邀3D视觉领域技术大咖加入工坊!
- Win10系统中英文切换
- HD、BD、MKV和RMVB、DVD、AVI
- SQL Server 数据查询
- 鸿蒙系统主页面斜纹,《中国美术欣赏》[精选].doc
- bamtools拆分bam文件
- 行情真的残酷,3年工龄老员工被毕业生“薪资倒挂”