Sentinel的熔断降级

整个项目请看gitee:https://gitee.com/xwb1056481167/spring-cloud

sentinel的安装和项目集成:https://blog.csdn.net/www1056481167/article/details/113679945

jmeter下载地址https://archive.apache.org/dist/jmeter/source/#sig(模拟并发使用)

注:里面用到的接口在微服务cloudalibaba-sentinel-service8401中

 

RT(平均响应时间)
选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs) 内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态) 若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。

异常比例
当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会 进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

 

异常数
当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

慢调用比例 (SLOW_REQUEST_RATIO)

平均响应时间 ,超出阈值 且 在时间窗口内通过的请求数>=5,两个条件同时满足触发降级

@GetMapping("/testD")
public String testD() {
    try {
        TimeUnit.SECONDS.sleep(1);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    log.info("testD 测试RT");
    return "-----------testD";
}
RT配置(平均响应时间)
平均响应时长

 
永远一秒钟执行10个线程数(大于5个),希望200毫秒执行完,如果超过200毫秒,断路器打开(保险丝跳闸)服务不可用,保险丝跳闸断电了

 

异常比例 (ERROR_RATIO)
QPS>=5,且异常比例(秒级统计)超过阈值时,触发降级,时间窗口结束后,关闭降级 

1、新增测试类

@GetMapping("/testC")
public String testC() {
    int a = 10 / 0;
    return "-----------testC";
}
2、设置异常比例

 

设置含义:一秒访问量10次(符合官网规定的一秒访问量超过5),然后这些访问失败的比例如果超过30%,则服务降级。 进入testC方法后,全部都是失败的,接下来的5秒内访问进行服务都是熔断的,5秒过后回复正常访问。就这样一直重复。

 

 

 

如果关闭jmeter,则关闭了测试,刷新浏览器,此时不会走设定的异常比例(因为QPS的访问量不够5)则会系统的异常。走runtimeException

 

异常数 (ERROR_COUNT)
SentinelResource和Hystrix的HystrixCommand注解是一样的效果,是有alibaba的增强版。
异常数(分钟统计)超过阈值,触发降级,时间窗口结束后,关闭降级

 1、测试类

@GetMapping("/testE")
public String testE() {
    log.info("testD 测试异常数");
    int age = 10 / 0;
    return "-----------testE";
}
2、sentinel配置

 

说明:一分钟之内,访问testE接口,刚开始的时候报错,连续访问5次后,跳闸,服务被熔断,紧接着被降级不能访问
————————————————
版权声明:本文为CSDN博主「Koma-forever」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/www1056481167/article/details/113683673

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值