Spring Cloud Alibaba - Sentinel入门案例(三)(降级规则 | RT / 异常比例 / 异常数)

Spring Cloud Alibaba - Sentinel入门案例(三)(降级规则 | RT / 异常比例 / 异常数)

回溯

什么是Sentinel?

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量
为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

本文主要讲解 Sentinel 容错功能之一 降级规则

正文

环境准备

需要启动好 Sentinel 控制台,以及监控一个消费者。
在这里插入图片描述
若对这一步有疑虑,请参考SpringCloud Alibaba - Sentinel入门案例(一)

编写一个消费者调用生产者的方法,并调用。

在这里插入图片描述
在Sentinel上可以看到自己编写调用方法的资源名。
在这里插入图片描述

降级规则介绍

降级规则就是设置当这次的服务访问满足什么条件的时候,对服务进行降级。

Sentinel对服务降级的条件配置有三种 RT / 异常比例 / 异常数

准备测试

在簇点链路中找到环境准备中编写的消费者调用生产者的方法。
在这里插入图片描述

RT

在这里插入图片描述

  • 时间窗口:当资源的平均响应时间超过阈值(以 ms 为单位)之后,资源进入准降级状态。如果接下来 1s 内持续进入 5 个请求,它们的 RT都持续超过这个阈值,那么在接下的时间窗口(以 s 为单位)之内,就会对这个方法进行服务降级。
  • RT:阈值(规则 / 判断条件)

首先对测试方法进行请求,并不设置降级规则,此操作用于查看一般访问的时间。

在这里插入图片描述

从监控可以看出,此时,若设置RT为一毫秒,是可以触发 RT 的降级规则 。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
QPS 被拒绝,页面显示 Blocked by Sentinel ,证明降级成功。

经过十秒过后再测试,访问成功,证明时间窗口生效

注意事项

Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项 -Dcsp.sentinel.statistic.max.rt=xxx 来配置。

异常比例

当资源的 每秒 异常总数占通过量的比值超过阈值之后,资源进入降级状态,即在接下的时间窗口(以 s 为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是 [0.0,1.0]。

当前我们设置异常比例 0.1,并且新增一个请求方法,使得每三次抛出一次异常,这样此方法异常比例高达百分之30;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
异常发生,请求被拒绝,证明降级规则生效。

异常数

当资源近 1 分钟的异常数目超过阈值之后会进行服务降级。注意:由于统计时间窗口是分钟级别的,若时间窗口小于 60s,则结束熔断状态后仍可能再进入熔断状态

当前我们设定异常数为 3 ,并且窗口时间为70秒,可以使用上面的例子进行测试。
在这里插入图片描述
在这里插入图片描述

请求被拒绝,证明降级规则生效。

猜你喜欢

转载自blog.csdn.net/qq_29064815/article/details/107150937