Sentinel中规则的种类有哪些?(流量控制、熔断降级、系统保护、来源访问控制、热点参数)--未完待续

39 阅读2分钟

流量控制规则

1.可以通过调用FlowRuleManager.loadRules()方法来用硬编码的方式定义流量控制规则。

2.流量规则FlowRule定义中的重要属性如下:

Field说明默认值
resource资源名,资源名是限流规则的作用对象
count限流阈值
grade限流阈值类型,QPS模式(1),或并发线程数模式(0)QPS模式
limitAPP流控针对的调用来源default,代表不区分调用来源
strategy调用关系限流策略:直接、链路、关联根据资源本身(直接)
controllBehavior流控效果(直接拒绝/WarmUP/匀速+排队等待),不支持按调用关系限流直接拒绝
clusterMode是否集群限流

1.调用关系策略

直接:直接对某个资源的访问进行限流

场景示例:假设有一个资源A,我们设置了直接策略,对该资源的QPS(每秒请求数)进行限制,当超过设定的阈值时,后续的请求将被拒绝或降级处理。

链路:链路策略用于对调用链路中的资源进行限流控制。它不仅关注单个资源,还关注调用链中的关系,尤其是入口资源到目标资源的调用路径。通常用于控制从某个入口资源开始到特定资源的调用流量。

场景示例:假设有一个入口资源X,通过调用链依次调用A,B,C。我们可以设置链路策略,对从入口资源到资源A的调用进行限流。

关联:关联策略用于对相关联的资源进行限流,即根据一个资源的访问情况,控制另一个资源的流量。常用于有依赖关系的资源,或者需要根据某个资源的状态来调节其他资源的访问流量。

场景示例:假设资源A和资源B有关联性。我们可以设置关联策略,当资源A的QPS达到一定阈值时,对资源B的访问进行限流。

2.流控效果

直接拒绝: 直接拒绝是一种最简单的流控效果,当流量超过预设阈值时,直接拒绝后续的请求。

warmup: 预热策略时通过限制初始阶段的流量,逐步提升允许的请求速率,直到达到最大阈值。主要用于系统刚启动时,避免瞬时高流量冲击系统,确保系统能够平稳过渡到高负载状态。

匀速排队: 匀速排队策略是通过排队的方式控制请求速率,确保请求以恒定速率进入系统。适用于对延迟容忍度较高,但需要控制流量平稳进入系统的场景。