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 熔断降级相关推荐

  1. 【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 ...

  2. 【SpringCloud】Spring cloud Alibaba Sentinel 降级规则

    文章目录 1.概述 2.服务降级 2.1 RT 2.2 异常比例 2.3 异常数 1.概述 本章是接着上一章讲解:[SpringCloud]Spring cloud Alibaba Sentinel ...

  3. Spring Cloud Alibaba —— Sentinel 详细使用

    导航 引言 一.Sentinel的两个基本概念 二.流控规则 2.1 基本选项 2.2 高级选项 三.熔断(降级)规则 四.热点规则 五.授权规则(了解) 六.系统规则(了解) 七.自定义异常返回 八 ...

  4. Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )

    Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 ) 回溯 什么是Sentinel? 正文 环境准备 简单使用 复杂使用 注意事项 回溯 什么是Sentinel? ...

  5. spring cloud alibaba sentinel 学习

    sentinel 学习 介绍(官方文档) 流量控制设计理念 熔断降级 Hystrix Sentinel 系统自适应保护 spring cloud alibaba sentinel sentinel.d ...

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

    Spring Cloud Alibaba | Sentinel: 服务限流高级篇 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明 ...

  7. 【java_wxid项目】【第十六章】【Spring Cloud Alibaba Sentinel集成】

    主项目链接:https://gitee.com/java_wxid/java_wxid 项目架构及博文总结: 点击:[使用Spring Boot快速构建应用] 点击:[使用Spring Cloud O ...

  8. spring cloud Alibaba Sentinel中文文档

    spring cloud Alibaba Sentinel中文文档 github中的中文文档:https://github.com/alibaba/Sentinel/wiki/介绍

  9. SpringCloud Alibaba Sentinel 熔断降级 - 程序配制方式实现

    一.Sentinel 上篇文章我们讲解了Sentinel 流控规则的配制,本篇文章我们继续讲下Sentinel 的熔断降级,依然采用程序配制方式实现. 上篇文章地址:https://blog.csdn ...

  10. 深度思考 Spring Cloud + Alibaba Sentinel 源码原理

    随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. 作者 | 向寒 / 孙玄 来源 | 架构之美 ...

最新文章

  1. 【IntelliJ IDEA】tomcat启动,打印日志乱码问题
  2. Python 自动化-pywinauto遍历展示程序的所有菜单项,菜单栏menu_select()操作方法的使用
  3. map:erase删除元素之后迭代器失效的问题!(iterator not incrementable)
  4. 出租WiFi到底靠不靠谱?
  5. 周期均方根和有效值的区别_如何判断化学锚栓和膨胀锚栓的区别
  6. 读光OCR-文字识别技术解读与应用案例分析
  7. 概率论----假设检验
  8. Android 答题App
  9. html中点击按钮闪现,vue使用v-if v-show页面闪烁,div闪现的解决方法
  10. 小程序防抖功能以及wx:for的使用
  11. 芯片解密MC9S08DZ16 飞思卡尔系列芯片解密
  12. 怎么样删除计算机管理员用户账户,怎么样删除电脑中多出来的管理员账户
  13. 静态路由的配置 简单实验图解
  14. centos7虚拟机安装elasticsearch5.0.x-安装篇
  15. java实现地图导航功能吗_Java web实现百度地图导航
  16. 如何优化我的世界服务器,我的世界服务器优化教程优化插件和玩法建议
  17. Springboot手机验证码
  18. 虚拟人,数字人,虚拟数字人的定义区别
  19. 任正非三天访问四校与巴斯德象限
  20. WindowsAPI函数大全

热门文章

  1. SoapUI启动报错:The JVM could not be started. The maximum heap size (-Xmx) might be too large
  2. 为什么说OLAP产品毁了BI?
  3. ABAP 锁对象与加锁机制
  4. Java如何通过WSDL文件来调用这些web service
  5. 销售收入科目确定VKOA
  6. SAP HR系统如何处理员工月中调动问题
  7. Mini汽车的保养周期
  8. 爱奇艺六季度付费用户数据一览,巨头A股还有希望吗?
  9. 波司登的高端之路,难走!
  10. solr6 java_Solr6 快速入门教程