开发者学堂课程【精通 Spring Cloud Alibaba:Sentinel 服务降级之错误比例】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10151
Sentinel 服务降级之错误比例
内容介绍:
一、平均响应时间
二、异常比例
三、操作代码
一、平均响应时间
平均响应时间( DEGRADE_GRADE_RT ):当1s 内持续进入5个请求,对应时刻的平均响应时间(秒级)均超过阈值( count,以 ms为单位),那么在接下的时间窗口(DegradeRule 中的 timewindow,以s为单位)之内,对这个方法的调用都会自动地熔断(抛出 DegradeException )。
注意 Sentinel 默认统计的 RT 上是4900 ms,超出此阈值的都会算作4900 ms,若需要变更此上限可以通过启云配置项
Dcsp.sentinel.statistic.max . rt=xxx 来配置。
二、异常比例
异常比例( DEGRADE_GRADE_EXCEPTION_RATIo )∶
当资源的每秒请求量>= 5,并且每秒异常总数占通过量的比值超过阈值(DegradeRule 中的 count )之后,资源进入降级状态,即在接下的时间窗口(DegradeRule 中的 timewindow ,以 s 为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是[e.0,1.0],代表0%- 100%。
比如客户端每秒 s 内发出5个请求,5个请求全部错误,这说明错误率为百分百。
每 s 内发出5个请求,如果请求的异常占比超过设置的阈值占比的情况下,就会触发我们熔断。
执行我们的服务降级方法。在规定的时间窗口内,不能执行真实业务逻辑。
三、操作代码
基于错误率服务降级:
@SentinelResource(value = "getorderDowngradeErrorType", fallback="getorderDowngradeErrorTypeFallback
”)
@RequestMapping( "lget0rderDowngradeErrorType")
public String get0rderDowngradeErrorType(int age) {
int j = 1 / age;
return
"正常执行我们业务逻辑:j”+j;
}
public String getOrderDowngradeErrorTypeFallback(int age) {
return
"错误率太高,暂时无法访问该接口;
}