实时监控

在这个面板中我们监控我们接口的通过的QPS和拒绝的QPS
在没有设置流控规则 我们是看不到拒绝的QPS

控制台使用 - 图1
设置流控规则为2的时候的监控图
控制台使用 - 图2

簇点链路

收集sentinel可以保护的资源
用来显示微服务的所监控的API


控制台使用 - 图3

1.流控设置

簇点链路 选择具体的访问的API 然后点击流控按钮
控制台使用 - 图4

含义:
资源名称:为我们接口的API /selectOrderInfoById/1

针对来源:这里是默认的default(标示不针对来源),还有一种情况就是假设微服务A需要调用这个资源,微服务B也需要调用这个资源,那么我们就可以单独的为微服务A和微服务B进行设置阈值。

针对来源还需要配置其它的


阈值类型: 分为QPS和线程数 假设阈值为2

QPS类型:只得是每秒钟访问接口的次数>2就进行限流

线程数:为接受请求该资源 分配的线程数>2就进行限流.
控制台使用 - 图5

流控模式

①:直接:这种很好理解,就是达到设置的阈值后直接被流控抛出异常
疯狂的请求这个路径
控制台使用 - 图6
②:关联
业务场景 我们现在有二个api,第一个是保存订单,一个是查询订单,假设我们希望优先操作是”保存订单”
控制台使用 - 图7
高级选项里面有个流控模式,点击关联,就会有一个写关联资源的地方,关联资源是写你请求接口的url,比如说 /selectById ,当你请求/selectById达到阈值之后,再访问资源名那里设置的资源的话,此时就被限流.
简单点说就是关联资源访问达到阈值了,不会限制关联资源的url,而是限制资源名那里的流量,

③:链路(用法说明,本地实验没成功 用alibaba 未毕业版本0.9.0可以测试出效果 API级
别的限制流量)
控制台使用 - 图8
控制台使用 - 图9

流控效果

①:快速失败(直接抛出异常) 每秒的QPS 操过1 就直接抛出异常

控制台使用 - 图10
控制台使用 - 图11
②:预热(warmUp)
当流量突然增大的时候,我们常常会希望系统从空闲状态到繁忙状态的切换的时间长一些。即如果系统在此之前长期处于空闲的状态,我们希望处理请求的数量是缓步的增多,经过预期的时间以后,到达系统处理请求个数的最大值。Warm Up(冷启动,预热)模式就是为了实现这个目的的。

冷加载因子: codeFactor 默认是3

默认 coldFactor 为 3,即请求 QPS 从 threshold / 3 开始,经预热时长逐渐升至设定的 QPS 阈值。

控制台使用 - 图12
控制台使用 - 图13
上图设置: 就是QPS从100/3=33开始算 经过10秒钟,到达一百的QPS 才进行限制流量
详情文档:https://github.com/alibaba/Sentinel/wiki/%E9%99%90%E6%B5%81---
%E5%86%B7%E5%90%AF%E5%8A%A8

③:排队等待
这种方式适合用于请求以突刺状来到,这个时候我们不希望一下子把所有的请求都通过,这样可能会把系统压垮;同时我们也期待系统以稳定的速度,逐步处理这些请求,以起到“削峰填谷”的效果,而不是拒绝所有请求。
选择排队等待的阈值类型必须是QPS
控制台使用 - 图14
单机阈值:10表示每秒通过的请求个数是10,那么每隔100ms通过一次请求.
每次请求的最大等待时间为20000=20s,超过20S就丢弃请求。


具体文档:
https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6-
%E5%8C%80%E9%80%9F%E6%8E%92%E9%98%9F%E6%A8%A1%E5%BC%8F

2.降级规则

①:rt(平局响应时间)
控制台使用 - 图15
平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 5 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出 DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作4900 ms,若需要变更此上限可以通过启动配置项 -Dcsp.sentinel.statistic.max.rt=xxx 来配置



②:异常比例 (DEGRADE_GRADE_EXCEPTION_RATIO):
当资源的每秒请求量 >= 5,并且每秒异常总数占通过量的比值超过阈值(DegradeRule 中的 count)之后,资源进入降级状态,即在接下的时间窗口(DegradeRule 中的 timeWindow,以 s为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是 [0.0, 1.0],代表 0% -100%。

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

控制台使用 - 图16

3.热点参数:


业务场景:秒杀业务,比如商城做促销秒杀,针对苹果11(商品id=5)进行9.9秒杀活动,那么这个时候,我们去请求订单接口(商品id=5)的请求流量十分大,我们就可以通过热点参数规则来控制商品id=5的请求的并发量。而其他正常商品的请求不会收到限制。那么这种热点参数规则很使用。

参数索引是从0开始的,第一个参数就写0,第二个参数就写1

底下单独设置出现的效果不会和上面全局设置的效果冲突.
控制台使用 - 图17
控制台使用 - 图18


4.授权规则

这个配置就是,白名单允许调用,黑名单不允许调用