降级规则
- 降级规则就是设置当满足什么条件的时候,对服务进行降级。Sentinel提供了三个衡量条件:
-
平均响应时间:当资源的平均响时间超过阈值(以ms为单位)之后,资源进入准降级状态。如果下来1s内持续进入5个请求,它们的RT都持续超过这个阈值,那么在接下来的时间窗口(以s为单位)之内,就会对这个方法进行服务降级。
image
注意Sentinel默认统计的RT上限是4900ms,超出此阈值的都会算作4900ms,若需要通过变更上限可以通过启动配置项-Dcsp.sentinel.static.max.rt=xxx来配置。
- 异常比例:当资源的每秒异常总数占通过量的比值超过阈值之后,资源进入降级状态,即在接下来的时间窗口(以s为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是[0.0,1.o]。
- 第一步:首先模拟一个异常
int i=0;
@RequestMapping("/order/message1")
public String message1(){
i++;
if (i%3==0){
throw new RuntimeException();
}
return "message1";
}
-
第2步:设置异常比例为0.25
image -
异常数:当资源近1分钟的异常数目超过阈值之后会进行服务降级。注意由于统计时间窗口是分钟级别的,若时间窗口小于60s,则结束熔断状态后仍可能再进入熔断状态。
image
问题:流控规则和降级规则返回的异常页面是一样的,我们怎么来区到底是什么原因导致的呢?
网友评论