一 服务熔断
1.1 服务熔断
Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(调用超时或者异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其他资源进而导致级联错误。
当资源被降级后,在接下来的降级时间窗口内,对该资源的调用都自动熔断。(默认抛出DegradeException)
Sentinel的断路器是没有半开状态的;半开状态的系统自动去监测是否请求有异常;如果有异常,则继续打开断路器不可用;没有异常则就关闭断路器恢复使用。
1.2 服务熔断常用配置
1)RT:平均响应时间,秒级;
平均响应时间超出阈值且在时间窗口内通过的请求>=5,这两个条件同时满足后触发降级:
窗口期过后关闭断路器,则重新能够访问。RT的最大值为4900
2)异常比例:秒级
QPS>=5且异常比例超过阈值时,触发降级;时间窗口结束后,关闭降级。
3)异常数
异常数(分钟统计) 超过阈值时,触发降级;时间窗口结束后,关闭降级。
二 服务熔断案例
2.1 RT设置
1.首先新增一个请求方法/testD,在方法里设置休眠1秒钟;
2.配置RT
3.不停的刷新/testD接口,当1秒请求的次数大于5(官方给出的默认值要求大于5)且RT设置为300ms给出响应,但是接口方法中设置了休眠1秒,响应时间肯定大于设置阈值300ms,则满足这两个条件,则触发熔断机制。2秒的熔断窗口期中,多次访问均处于熔断状态,2秒后熔断关闭
2秒后熔断关闭,访问正常