SpringCloud(39)——Sentinel降级

我们打开Sentinel控制台,新增一个降级规则,可以看到有三个维度的降级规则:分别是慢调用比例、异常比例和异常数。

image.png

那么分别代表什么意思呢?可以看一下官网的解释。

image.png

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

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

1.慢调用比例

我们先让A接口睡上2秒钟,方便我们测试
再接着新增 一个降级规则

image.png

可以看到我们这个规则的意思是:在1000ms的时间段中,至少有五个请求,并且请求响应时间超过200ms的比例达到了1:1,那么就会触发熔断,熔断时间为3秒钟。

我们同样需要postman来进行多次发送请求。
我设置了20次请求,每0.2秒发送一个(因为要在1秒内达到五个请求才会触发降级)。

image.png

我们在postma循环发送的过程中,再通过浏览器发送请求,就可以看到降级的效果啦。

2.异常比例

由于要发生异常,因此我们新增一个有异常的接口,比如10/0这种。

image.png

接下来我们新增一个降级规则

image.png

我们还是当异常比例达到20%的时候产生触发熔断。
同样使用postman来循环发送请求。
我设置的是发送20个请求,每个请求间隔0.1s,也就是一秒钟10个请求

image.png

我们看一下结果

可以看到异常都是500,而在循环发送请求的期间,我们通过浏览器再访问C看到的就是熔断的效果了。

image.png

可以看到前6的请求返回的都是500异常,而当第七个请求开始返回的就是200了,说明从这开始我们的请求就被熔断了。

3.异常数

异常数就很简单了,当达到指定的异常数阈值时,服务就会发生熔断
我们来修改一下降级规则

image.png

修改好后直接在浏览器点击即可,当第六次就会发生熔断。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容