ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
本节为大家介绍降级规则的另外两种:异常比例和异常数量。首先我们人为的在代码中加入一个被除数为0的运行时异常。 ![](https://img.kancloud.cn/ce/a9/cea9b213e4193b36e962016c2c16b3f0_1106x356.png) ## 一、异常比例降级 ![](https://img.kancloud.cn/27/f9/27f99434a37f2a34eec2996e3fa12180_586x150.png) 异常比例降级的触发条件: * 资源的每秒请求数量>=5 * 请求异常响应的数量占总请求数量的超过“异常比例配置” 当以上的两个条件都满足的时候,资源进入降级状态。在接下来的“时间窗口”内的请求都将被降级,执行fallback方法或者BlockHandler方法。 #### 测试: 参考Hystrix章节的《Jemeter模拟触发服务熔断》创建Jemeter接口测试用例。为了更明显的触发降级规则:配置1秒钟发送10个请求“/sysuser/pwd/reset”。 ![](https://img.kancloud.cn/88/7a/887aa969fd89ec86337eb6ed074c45ae_472x393.png) ![](https://img.kancloud.cn/fb/4a/fb4a8304a6adefa40b9c5b0c7d75f1d3_570x386.png) 从以上响应结果可以看出:在5次异常请求之后(被除数为0),异常请求占比100%(大于0.5),资源接口进入降级状态执行BlockHandler方法。BlockHandler方法参看《BlockException处理》和《实战熔断降级-RT》中的定义。 ## 二、异常数量降级 明白了异常比例降级,异常数量降级就不难理解了。 异常数量降级的触发条件:**近1分钟内异常请求数量超过“异常数配置”**,资源进入降级状态。在接下来的“时间窗口”内的请求都将被降级,执行fallback方法或者BlockHandler方法。 > 需要注意的是:时间窗口的配置必须大于等于60,否则将导致结束熔断状态之后,再次无缘无故进入熔断状态。 ![](https://img.kancloud.cn/fa/be/fabe0e4652fa2df82c687ff81d64156a_610x147.png) #### 测试: 参考Hystrix章节的《Jemeter模拟触发服务熔断》创建Jemeter接口测试用例。为了更明显的触发降级规则:配置1秒钟发送10个请求“/sysuser/pwd/reset”。 ![](https://img.kancloud.cn/50/e5/50e517f6ef9760a2785d14dfe6d60919_602x388.png) 从以上响应结果可以看出:在6次异常请求之后(被除数为0),资源接口进入降级状态执行BlockHandler方法。BlockHandler方法参看《BlockException处理》和《实战熔断降级-RT》中的定义。