## 熔断降级规则 熔断降级会在调用链路中某个资源出现不稳定状态时(调用超时或者异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其他资源而导致级联错误。当资源被降级后,再接下来的降级时间窗口内,对该资源的调用都自动熔断(默认行为抛出DegradeException) ## 熔断指标 ![](https://img.kancloud.cn/e3/b9/e3b9fc4f4d17362f512cab4ca2777ced_647x311.png) * 平均响应时间(DEGRADE_GRADE_RT): 当1s内持续进入N个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以ms为单位),那么再接下来的时间(DegradeRule中的timeWindow,以s为单位)之内,对这个方法的调用都自动熔断 * 异常比例(DEGRADE_GRADE_EXCEPTION_RATIO):当资源的每秒请求量 >=N(可配置),并且每秒异常总数站通过量的比例超过阈值之后,资源进入降级状态,在接下来的时间内,对这个方法自动返回。异常比例的阈值范围是[0.0,1.0] * 异常数(DEGRADE_GRADE_EXCEPTION_COUNT): 当资源近1分组的异常数目超过阈值之后会进行熔断。注意由于统计时间是分钟级别的,如果timeWindow小于60s,则结束熔断状态后可能继续接入熔断状态 ## 加依赖 ``` <!--alibaba sentinel--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> ``` ## 加配置 ![](https://img.kancloud.cn/d1/88/d1883e4443bbafc9548e2d90bf665666_1358x423.png) ![](https://img.kancloud.cn/aa/c3/aac30276fa2eaac7e1e9c31f6b11e726_1919x544.png) ## 加资源名称 ![](https://img.kancloud.cn/1e/88/1e884e4441e1272f7a90da35ae6ec9b5_1547x596.png) ![](https://img.kancloud.cn/cb/57/cb57fb8ef499bdb8169cb4fbf3457c83_1920x873.png) ## 根据资源设置熔断降级规则(降级规则需要流控规则每秒大于5个qps) ![](https://img.kancloud.cn/ab/2c/ab2c33c5336ed5b4b68cab691d26d12c_1460x565.png) ## RuleConstant阈值类型 * QPS * 线程数 ## 测试流控api ### 正常结果 ![](https://img.kancloud.cn/28/b0/28b0642b0f98e661156867617aa34778_1920x424.png) ### 异常结果 ![](https://img.kancloud.cn/8e/8c/8e8c37bf2ed0b738fd59326af83e8a0b_1920x401.png) ## 查看sentinel-dashboard 基于响应时间的,超过10ms的记一次数 1s中5个请求过来,都大于10ms的响应时间熔断 ![](https://img.kancloud.cn/7c/23/7c23eb2e464d3842f2088929464dc687_1919x546.png) ## 参数设置 * 响应时间大于10ms的触发熔断,2秒后都进入降级方法 ![](https://img.kancloud.cn/14/7b/147b97986f4c02b2d91f384ed5f03807_500x137.png)