springcloud3 Sentinel的服务熔断降级操作2

一 服务熔断

1.1 服务熔断降级

Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(调用超时或者异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其他资源进而导致级联错误。

当资源被降级后,在接下来的降级时间窗口内,对该资源的调用都自动熔断。(默认抛出DegradeException)

Sentinel的断路器是没有半开状态的;半开状态的系统自动去监测是否请求有异常;如果有异常,则继续打开断路器不可用;没有异常则就关闭断路器恢复使用。

1.2 服务熔断降级常用配置策略

1)RT:平均响应时间,秒级;

平均响应时间超出阈值且在时间窗口内通过的请求>=5,这两个条件同时满足后触发降级:

窗口期过后关闭断路器,则重新能够访问。RT的最大值为4900

2)异常比例:秒级

QPS>=5且异常比例超过阈值时,触发降级;时间窗口结束后,关闭降级。

3)异常数

异常数(分钟统计) 超过阈值时,触发降级;时间窗口结束后,关闭降级。

二  服务熔断案例

2.1 策略1:RT设置

1.首先新增一个请求方法/testD,在方法里设置休眠1秒钟;

2.配置RT

 3.不停的刷新/testD接口,当1秒请求的次数大于5(官方给出的默认值要求大于5)且RT设置为300ms给出响应,但是接口方法中设置了休眠1秒,响应时间肯定大于设置阈值300ms,则满足这两个条件,则触发熔断降级机制。2秒的熔断窗口期中,多次访问均处于熔断状态,2秒后熔断关闭

 2秒后熔断关闭,访问正常

2.2 策略2:异常比例

2.2.1  架构图

 2.2.2 操作

1.设置testD方法中,设置算术异常逻辑

 2.配置

异常出现比例20%,且每秒请求数目大于5,则触发熔断机制,且在熔断的5s时间窗口期内,不能访问服务。

 3.单独正常访问,报算术异常

4.进行频繁刷新,触发熔断条件,则走熔断机制,报如下提示:

 5.窗口期5s过后,再次访问,恢复正常,熔断服务关闭,走接口的正常逻辑,报算术异常

2.3 策略3:异常数

异常数:当资源近1分钟的异常数超过阈值之后进行熔断。这里的统计窗口为分钟级别,如果timewindow小于60s,则结束熔断后,仍有可能再次进入熔断。

所以:时间窗口一定要大于等于60s。

1.说明,第一次访问:http://localhost:7005/testE 肯定报错,因为除数不能为0;

2.配置

在1分钟内异常数大于5,则触发熔断降级,在时间窗口70s内,都不能正常访问,超过70s后,再次访问后报算术异常 

3.连续访问地址,触发大于5次

 

4.超过70s后,再次访问后报算术异常 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值