介绍
:::tips 熔断降级是解决雪崩问题的重要手段。其思路是由断路器统计服务调用的异常比例、慢请求比例,如果超出阈值则会熔断该服务,即拦截访问该服务的一切请求;当服务恢复时,断路器会放行访问该服务的请求
断路器控制熔断和放行是通过状态机来完成的
状态机存在三个状态:
- closed:关闭状态,断路器放行所有请求,并开始统计异常比例、慢请求比例,超过阈值则切换到open状态
- open:打开状态,服务调用被熔断,访问被熔断服务的请求会被拒绝,快速失败,直接走降级逻辑,open状态5秒后就会进入half-open状态
- half-open:半开状态,放行一次请求,根据执行结果来判断接下来的操作
- 请求成功:则切换到closed状态
- 请求失败:则切换到open状态
断路器熔断策略有三种:慢调用、异常比例、异常数
进入Sentinel,点击资源后面的降级按钮即可配置熔断降级的策略 :::
慢调用
:::tips 业务的响应时长(RT)大于指定时长的请求就认定为慢调用请求,在指定时间内,如果请求数量超过设定的最小数量,而且慢调用的比例高于设定的阈值,就会触发熔断
点击资源后面的降级按钮,选择慢调用即可进行配置
配置解读:RT超过500ms的调用是慢调用,统计最近10000ms内的请求,如果请求数量超过10次,并且出现慢调用的比例高于0.5,就会触发熔断,熔断5秒后就会进入half-open状态,并放行一次请求做测试
:::
异常比例
:::tips 统计指定时间内的调用,如果调用次数超过指定请求数量,并且出现异常的比例达到设定的比例阈值,就会触发熔断
点击资源后面的降级按钮,选择异常比例即可进行配置
配置解读:统计最近1000ms内的请求,如果请求数量超过10次,并且出现异常的比例高于0.4,就会触发熔断,熔断5秒后就会进入half-open状态,并放行一次请求做测试
:::
异常数
:::tips 统计指定时间内的调用,如果调用次数超过指定请求数,并且出现异常的数量达到设定的数量,就会触发熔断
点击资源后面的降级按钮,选择异常数即可进行配置
配置解读:统计最近1000ms内的请求,如果请求量超过10次,且10次里面出现的异常数高于两次,就会触发熔断,熔断5秒后就会进入half-open状态,并放行一次请求做测试
:::