介绍

:::tips 熔断降级是解决雪崩问题的重要手段。其思路是由断路器统计服务调用的异常比例、慢请求比例,如果超出阈值则会熔断该服务,即拦截访问该服务的一切请求;当服务恢复时,断路器会放行访问该服务的请求

断路器控制熔断和放行是通过状态机来完成的
image.png
状态机存在三个状态:

  • closed:关闭状态,断路器放行所有请求,并开始统计异常比例、慢请求比例,超过阈值则切换到open状态
  • open:打开状态,服务调用被熔断,访问被熔断服务的请求会被拒绝,快速失败,直接走降级逻辑,open状态5秒后就会进入half-open状态
  • half-open:半开状态,放行一次请求,根据执行结果来判断接下来的操作
    • 请求成功:则切换到closed状态
    • 请求失败:则切换到open状态

断路器熔断策略有三种:慢调用、异常比例、异常数

进入Sentinel,点击资源后面的降级按钮即可配置熔断降级的策略 :::

慢调用

:::tips 业务的响应时长(RT)大于指定时长的请求就认定为慢调用请求,在指定时间内,如果请求数量超过设定的最小数量,而且慢调用的比例高于设定的阈值,就会触发熔断

点击资源后面的降级按钮,选择慢调用即可进行配置
image.png
配置解读:RT超过500ms的调用是慢调用,统计最近10000ms内的请求,如果请求数量超过10次,并且出现慢调用的比例高于0.5,就会触发熔断,熔断5秒后就会进入half-open状态,并放行一次请求做测试 :::

异常比例

:::tips 统计指定时间内的调用,如果调用次数超过指定请求数量,并且出现异常的比例达到设定的比例阈值,就会触发熔断

点击资源后面的降级按钮,选择异常比例即可进行配置
image.png
配置解读:统计最近1000ms内的请求,如果请求数量超过10次,并且出现异常的比例高于0.4,就会触发熔断,熔断5秒后就会进入half-open状态,并放行一次请求做测试 :::

异常数

:::tips 统计指定时间内的调用,如果调用次数超过指定请求数,并且出现异常的数量达到设定的数量,就会触发熔断

点击资源后面的降级按钮,选择异常数即可进行配置
image.png
配置解读:统计最近1000ms内的请求,如果请求量超过10次,且10次里面出现的异常数高于两次,就会触发熔断,熔断5秒后就会进入half-open状态,并放行一次请求做测试 :::