Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(超时或异常),对这个资源的调用进行限制,让请求快速失败,避免影响到其它资源而导致级联错误。
当资源被降级后,在接下来的降级时间窗口内,对该资源的调用都会自动熔断(默认抛出DegradeException异常)。
参数说明:
RT(平均响应时间,秒级):
平均响应时间超出阈值==且==在时间窗口内通过的请求 >= 5,两个条件同时满足后,进行服务降级,时间窗口期过后,关闭断路器
RT最大4900ms(更大的值需通过-Dcsp.sentinel.statistic.max.rt=xxx
设置)
异常比例(秒级):
QPS >= 5 ==且==异常比例([0.01-1.0])超过阈值,触发降级,时间窗口结束后,关闭断路器
异常数(分钟级):
异常数超过阈值时,触发降级,时间窗口结束后,关闭断路器
1、RT平均响应时间
Sentinel默认设置为1秒5次请求。
一秒钟进入5个请求,且平均响应时间超过设置的200ms,就触发降级
Jmeter压力测试:
新增一个测试方法:
2、异常比例
当资源的每秒请求量 >= 5,并且每秒异常总数占总通过请求数的比值超过设置的阈值,触发熔断降级,异常比例阈值范围:[0.01-1.0]
测试:
修改刚才新增的/testD
测试方法
设置降级规则:
未触发降级的返回结果:
触发降级的返回结果:
3、异常数
当请求的资源近1分钟的异常数目超过阈值之后,会进行熔断。由于统计时间窗口是分钟级的,如果timeWindow(时间窗口期)小于60s,结束熔断后可能会再次进入熔断状态。
评论 (0)