控制模式
- 直接: 针对资源自己直接进行流量控制
- 关联: 监控关联资源的流量情况来对自身资源进行限制
链路: 对资源内部调用的资源进行入口来源的限制
注意: 链路的支持需要设置sentinel的url关闭聚合,在某些版本(1.7.2+)提供了属性来关闭spring:cloud:sentinel:web-context-unify: false #关闭聚合
没有提供属性就只能改写内部代码。
控制效果
- 快速失败: 达到阀值之后直接抛异常
- Warm Up: 当流量在某一瞬间很大的时候,它不会让流量立即到达阀值,而是进过一段时间慢慢的预热增长
- 排队通过:请求达到阀值进行匀速排队通过
9.5 降级策略
- RT: 平均响应时间,当 1s 内持续进入 N 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单 位)之内,对这个方法的调用都会自动地熔断(抛出 DegradeException)。
- 异常比例: 通过每秒的异常总数计算比例
- 异常数量
热点参数
热点参数是对调用接口时候传入某个参数进行流控,这种方式需要设置@SentinelResource
集群流控(了解)
集群流控中共有两种身份:
Token Client:集群流控客户端,用于向所属 Token Server 通信请求 token。集群限流服务端会返回给客户端结果,决定是否限流。Token Server:即集群流控服务端,处理来自 Token Client 的请求,根据配置的集群规则判断是否应该发放 token(是否允许通过)。

