2-CloudAlibaba-Sentinel(熔断降级)学习笔记2020.10.22

36 篇文章 2 订阅
13 篇文章 0 订阅

2-CloudAlibaba-Sentinel(熔断降级)学习笔记2020.10.22

前言: (官网)

除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。

熔断策略

Sentinel 提供以下几种熔断策略:

  • 慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
  • 异常比例 (ERROR_RATIO):当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。
  • 异常数 (ERROR_COUNT):当单位统计 时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

也就是Hystrix的服务熔断、降级功能。

1.0 熔断策略-慢调用比例

1.1 api接口

@GetMapping("/test3")
    public String testD() {
        try {
            //睡眠1秒
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("test3-测试慢调用");
        return "------test3";
    }

1.2 进行配置与测试

按照下图进行配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MZGhVWXF-1603362622435)(https://s1.ax1x.com/2020/10/22/BFYHkF.jpg)]

2.0 熔断策略-异常比例

2.1 api接口

private static int count = 1;

    @GetMapping("/test4")
    public String testE() {
        log.info("test4 测试异常数");
        if (count < 15){
            ++count;
            int age = 10 / 0;
        }
        return "------test4 测试异常数";
    }

2.2 进行配置与测试

按下图进行配置与测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jWs6j4hR-1603362622437)(https://s1.ax1x.com/2020/10/22/BFwWpF.jpg)]

3.0 熔断策略-异常数

3.1 api接口

private static int count = 1;

    @GetMapping("/test4")
    public String testE() {
        log.info("test4 测试异常数");
        if (count < 15){
            ++count;
            int age = 10 / 0;
        }
        return "------test4 测试异常数";
    }

3.2 进行配置与测试

按下图进行配置与测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BucFR8QJ-1603362622438)(https://s1.ax1x.com/2020/10/22/BFraEn.jpg)]

注意: 请求在没开启熔断的时候, 是可以通过并返回异常结果的, 然后返回的异常结果达到了阈值就会开启熔断, 就会进行拒绝请求。

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

懵懵懂懂程序员

如果节省了你的时间, 请鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值