Spring Cloud Alibaba:Sentinel 熔断降级
1. 前言
Sentinel版本:1.8.0
1.8.0 对熔断特性做了大量升级,低于此版本的谨慎参考
2. 熔断策略
2.1 慢调用比例
最大 RT(即最大的响应时间):请求的响应时间大于RT则统计为慢调用。
当单位统计时长(默认1秒)内,请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。
经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
测试例子:
写一个接口,通过sleep参数来决定是否睡眠1秒。
传 true 则触发睡眠,请求时间 > RT
传 false 则直接返回,请求时间 < RT
@GetMapping("/order1")public String order1(boolean sleep){if (sleep){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}return "order1";}
- 在浏览器快速多次打开 /order1?sleep=true ,触发熔断
- 然后再调用的时候,直接报错
Blocked by Sentinel (flow limiting)
- 等待几秒,熔断时间过后。如果再次调用 /order1?sleep=true,则又会触发熔断;如果是调用/order1?sleep=false,则结束熔断,恢复正常。
2.2 异常比例
当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。
整个逻辑跟上一步的慢调用比例基本类似,这里就不再画图了
测试例子:
修改上面的接口,通过error判断是否抛出异常
@GetMapping("/order1")public String order1(boolean error) throws Exception {if (error){throw new Exception("抛出异常");}return "order1";}
- 在浏览器快速访问 /order1?error=true,直到显示
Blocked by Sentinel (flow limiting)
- 静等几秒,熔断时间过后
- 如果再次调用 /order1?error=true,则又会触发熔断;如果是调用/order1?error=false,则结束熔断,恢复正常。
2.3 异常数
当单位统计时长内异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。
3. 注意事项
异常降级仅针对业务异常,对 Sentinel 限流降级本身的异常(BlockException)不生效
Spring Cloud Alibaba:Sentinel 熔断降级相关推荐
- 【SpringCloud】Spring cloud Alibaba Sentinel 服务降级 (阿里版本Hystrix)
文章目录 1.概述 2. 区别 2.安装 3. 案例 3.1 配置 3.2 启动服务 3.2.1 启动Sentinel 3.2.2 启动单机版nacos 3.2.3 服务8401 4.流控规则 4.1 ...
- 【SpringCloud】Spring cloud Alibaba Sentinel 降级规则
文章目录 1.概述 2.服务降级 2.1 RT 2.2 异常比例 2.3 异常数 1.概述 本章是接着上一章讲解:[SpringCloud]Spring cloud Alibaba Sentinel ...
- Spring Cloud Alibaba —— Sentinel 详细使用
导航 引言 一.Sentinel的两个基本概念 二.流控规则 2.1 基本选项 2.2 高级选项 三.熔断(降级)规则 四.热点规则 五.授权规则(了解) 六.系统规则(了解) 七.自定义异常返回 八 ...
- Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 ) 回溯 什么是Sentinel? 正文 环境准备 简单使用 复杂使用 注意事项 回溯 什么是Sentinel? ...
- spring cloud alibaba sentinel 学习
sentinel 学习 介绍(官方文档) 流量控制设计理念 熔断降级 Hystrix Sentinel 系统自适应保护 spring cloud alibaba sentinel sentinel.d ...
- Spring Cloud Alibaba | Sentinel: 服务限流高级篇
Spring Cloud Alibaba | Sentinel: 服务限流高级篇 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明 ...
- 【java_wxid项目】【第十六章】【Spring Cloud Alibaba Sentinel集成】
主项目链接:https://gitee.com/java_wxid/java_wxid 项目架构及博文总结: 点击:[使用Spring Boot快速构建应用] 点击:[使用Spring Cloud O ...
- spring cloud Alibaba Sentinel中文文档
spring cloud Alibaba Sentinel中文文档 github中的中文文档:https://github.com/alibaba/Sentinel/wiki/介绍
- SpringCloud Alibaba Sentinel 熔断降级 - 程序配制方式实现
一.Sentinel 上篇文章我们讲解了Sentinel 流控规则的配制,本篇文章我们继续讲下Sentinel 的熔断降级,依然采用程序配制方式实现. 上篇文章地址:https://blog.csdn ...
- 深度思考 Spring Cloud + Alibaba Sentinel 源码原理
随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. 作者 | 向寒 / 孙玄 来源 | 架构之美 ...
最新文章
- 【IntelliJ IDEA】tomcat启动,打印日志乱码问题
- Python 自动化-pywinauto遍历展示程序的所有菜单项,菜单栏menu_select()操作方法的使用
- map:erase删除元素之后迭代器失效的问题!(iterator not incrementable)
- 出租WiFi到底靠不靠谱?
- 周期均方根和有效值的区别_如何判断化学锚栓和膨胀锚栓的区别
- 读光OCR-文字识别技术解读与应用案例分析
- 概率论----假设检验
- Android 答题App
- html中点击按钮闪现,vue使用v-if v-show页面闪烁,div闪现的解决方法
- 小程序防抖功能以及wx:for的使用
- 芯片解密MC9S08DZ16 飞思卡尔系列芯片解密
- 怎么样删除计算机管理员用户账户,怎么样删除电脑中多出来的管理员账户
- 静态路由的配置 简单实验图解
- centos7虚拟机安装elasticsearch5.0.x-安装篇
- java实现地图导航功能吗_Java web实现百度地图导航
- 如何优化我的世界服务器,我的世界服务器优化教程优化插件和玩法建议
- Springboot手机验证码
- 虚拟人,数字人,虚拟数字人的定义区别
- 任正非三天访问四校与巴斯德象限
- WindowsAPI函数大全