Spring Cloud Alibaba Sentinel 熔断策略-异常比例

异常比例

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

​ 注意:异常降级仅针对业务异常,对 Sentinel 限流降级本身的异常(BlockException)不生效。

image-20211104143705448

简单理解:

image-20211104150725704

案例

编写测试接口

1
2
3
4
5
6
7
8
//FlowLimitController
@GetMapping("/testD")
public String testD(Integer id){
if(id != null && id > 1){
throw new RuntimeException("异常比例测试");
}
return "------------testD";
}

设置熔断策略异常比例

image-20211104202552823

测试

我们通过JMeter来测试,设定HTTP请求地址

image-20211104154856685

1秒钟发送10个请求

image-20211104154931689

当启动JMeter的时候,就会触发熔断,因为此时我们1秒钟发送10个请求超过了最小请求数5,同时超过了阈值,满足了两个条件,当熔断时长过后就会恢复正常。

image-20211104155351048