开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第二阶段:降级规则】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/684/detail/11876
降级规则
内容介绍:
一、降级规则介绍
二、平均响应时间
三、异常比例
四、异常数
一、降级规则介绍
降级规则是指当满足哪些条件时,对微服务进行降级处理。Sentinel 内部有三个衡量条件。分别为 RT,异常比例,异常数。
二、平均响应时间
当资源的平均响应时间超过阈值之后,资源进入准降级状态(没有立即进入降级状态)。
如果接下来1s持续进入5个请求,他们的RT都超过这个阈值,那么接下来的时间里,就会对这个方法进行降级。
维持的时间,由时间窗口来决定,单位为s。
如上图所示:
当平均相应时间大于1s,那么接下里一秒时间里,进入准降级状态,如果接下来一秒时间内,连续五个请求都大于1ms,则进行降级,降级时间为10s中,10s后,恢复正常进行下一轮的判断。
注意:
sentinel中,RT 最大为4900,超过则按4900来进行测试。如需修改此数值,
则在启动时加上 Scsp.sentitel.staticstic.maxrt=xxx 进行配置。
三、异常比例
当资源的每秒总异常数占通过量的比值超过阈值,则进行降级。
1. 模拟一个异常
Int i = 0
@RequestMapping(
“
/order/message2
”
)
Public string message2() {
i++;
//异常比例为0.333
If (i % 3 ==0){
Throw new RuntimeException(); }
Return
“
message2:; }
注意:
此程序一定要先“++”,后进行计算。如果“++”放在下面,那么异常发生之后,就不执行++语句。
将程序编写好之后,重新启动后,先刷新message1,然后找到簇点链路,
设置降级规则:
可能出现的问题:为何微服务器一重启,降级规则消失?
因为降级规则默认是存在于内存里面,需要将其换到本地上。
降级规则中数值为0.0——1。此时必须将填入的数值,选择在设定的阈值以下才有效果。
2. 设置异常比例为0.25,时间窗口为5秒
四、异常数
当一分钟的异常数值超过阈值时,按分钟计算,则进行降级。统计时间窗口为60s,此时阈值则需要调为大于60。
刷新,显示为降级