限流阈值类型是指在进行限流时所依据的不同维度或条件。Sentinel 支持多种阈值类型,每种类型适用于不同的场景。以下是一些主要的阈值类型:
-
直接 QPS 限流 (QPS Threshold)
- 这是最简单的限流方式,直接根据每秒请求数(Queries Per Second, QPS)来设置阈值。
- 例如,你可以设置一个资源的最大 QPS 为 100,则超过这个数值的请求将会被限流。
-
并发线程数限流 (Concurrency Level Threshold)
- 根据允许同时处理的请求数量来限流。
- 当某个资源的并发线程数达到设定的阈值后,新的请求会被限流。
-
热键限流 (Hot Key)
- 针对某些热点参数进行限流,比如针对用户的 ID 或商品 ID 进行限流。
- 可以设置每个热点键的最大 QPS,如果某个键的请求数超过设定值,则对该键的请求进行限流。
-
基于资源的限流
- 可以对整个应用或特定的资源进行限流。
- 例如,可以为某个 API 设置限流规则,或者对整个应用设置全局限流。
-
集群限流
- 在分布式环境中,可以设置集群级别的限流策略,确保整个集群的流量处于可控状态。
- 通常与 Sentinel 控制台配合使用,实现动态调整阈值等功能。
-
链路 RT 限流 (Response Time Threshold)
- 根据响应时间来进行限流,如果资源的平均响应时间超过了设定的阈值,则进行限流。
-
链路异常比例限流
- 根据异常请求的比例来决定是否进行限流,当异常请求占总请求的比例达到设定值时启动限流。