前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速学习-Sentinel 熔断降级

快速学习-Sentinel 熔断降级

作者头像
cwl_java
发布2020-08-02 17:53:10
5320
发布2020-08-02 17:53:10
举报
文章被收录于专栏:cwl_Javacwl_Java

7、Sentinel 熔断降级

7.1 概述

熔断降级是指当资源处于不稳定的情况下,在接下来的时间窗口之内,对该资源的调用都自动熔断。我们通常用两种方式来衡量资源是否处于稳定的状态:

  • 平均响应时间(DEGRADE_GRADE_RT):当资源的平均响应时间超过阈值(DegradeRule 中的count,以ms 为单位)之后,资源进入准降级状态。
  • 接下来如果持续进入5 个请求,它们的RT 都持续超过这个阈值,那么在接下的时间窗口(DegradeRule 中的timeWindow,以s 为单位)之内,对这个方法的调用都会自动地返回。

如RT Degrade demo 所示,一个资源每次需要500 ms。那么观察这个例子的结果,发现每过10 秒,就会恢复对该资源的调用,但是很快这个资源又会被降级(平均响应时间仍然不满足需求)。

  • 异常比例(DEGRADE_GRADE_EXCEPTION):当资源的每秒异常总数占通过总数的比值超过阈值(DegradeRule 中的count)之后,资源进入降级状态,即在接下的时间窗口(DegradeRule 中的timeWindow,以s 为单位)之内,对这个方法的调用都会自动地返回。

注意:为了统计异常比例,必须保证资源用下面的代码包围:

代码语言:javascript
复制
        Entry entry = null;
        try {
            entry = SphU.entry(key, EntryType.IN, key);
            // Write your biz code here.
            // <<BIZ CODE>>
        } catch (Throwable t) {
            if (!BlockException.isBlockException(t) {
                Tracer.trace(t);
            }
        } finally {
            if (entry != null) {
                entry.exit();
            }
        }

7.2 示例

运行Demo,将可以看到:

代码语言:javascript
复制
1529399827825,total:0, pass:0, block:0
1529399828825,total:4263, pass:100, block:4164 // 第一秒的平均RT 都还比较小
1529399829825,total:19179, pass:4, block:19176
1529399830824,total:19806, pass:0, block:19806 // 开始被降级
1529399831825,total:19198, pass:0, block:19198
1529399832824,total:19481, pass:0, block:19481
1529399833826,total:19241, pass:0, block:19241
1529399834826,total:17276, pass:0, block:17276
1529399835826,total:18722, pass:0, block:18722
1529399836826,total:19490, pass:0, block:19492
1529399837828,total:19355, pass:0, block:19355
1529399838827,total:11388, pass:0, block:11388
1529399839829,total:14494, pass:104, block:14390 // 10 秒之后恢复,然而又迅速地

被降级

代码语言:javascript
复制
1529399840854,total:18505, pass:0, block:18505
1529399841854,total:19673, pass:0, block:19676
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 7、Sentinel 熔断降级
    • 7.1 概述
    • 7.2 示例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档