Sentinel 流控规则 · 流控效果
文章目录
- Sentinel 流控规则 · 流控效果
- 一、依赖与接入
- 二、流控效果是什么
- 三、阈值类型:QPS vs 并发线程数
- 四、控制台参数字段(完整)
- 流控效果 × 阈值类型
- 五、三种效果详解
- 5.1 快速失败(默认)
- 5.2 Warm Up 预热
- 5.3 匀速排队
- 六、JSON 规则片段
- 参考官方文档
Sentinel 流控规则 · 流控效果
基于
spring-cloud-demo· order-service · Boot 4.1.0 + Cloud 2025.1.2
一、依赖与接入
<!-- Sentinel 客户端 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>spring:cloud:sentinel:transport:dashboard:127.0.0.1:8100# 控制台地址启动 Dashboard
这里的指令是8100作为控制台端口号
账号:admin
密码:admin
java-Dserver.port=8100-Dsentinel.dashboard.auth.username=admin-Dsentinel.dashboard.auth.password=admin-Dserver.servlet.session.timeout=1440m-jarsentinel-dashboard-1.8.10.jar二、流控效果是什么
流控效果(controlBehavior)决定超过阈值后怎么处理请求。
| 效果 | controlBehavior | 适用阈值类型 |
|---|---|---|
| 快速失败 | 0 | QPS和并发线程数 |
| Warm Up 预热 | 1 | 仅 QPS |
| 匀速排队 | 2 | 仅 QPS |
三、阈值类型:QPS vs 并发线程数
| 类型 | grade | 限制什么 |
|---|---|---|
| QPS | 1 | 滑动窗口约 1 秒内通过次数 |
| 并发线程数 | 0 | 同时正在处理的请求数 |
近似关系:QPS ≈ 并发数 / 平均响应时间(秒)。
并发线程数: 当设置阈值为5,有五个任务正在执行,第六个任务来临时丢弃
四、控制台参数字段(完整)
| 控制台字段 | JSON 字段 | 说明 |
|---|---|---|
| 阈值类型 | grade | 0=线程数,1=QPS |
| 流控效果 | controlBehavior | 0快速失败,1预热,2匀速排队 |
| 单机阈值 | count | 阈值数值 |
| 预热时长 | warmUpPeriodSec | 秒,仅预热 |
| 排队超时 | maxQueueingTimeMs | 毫秒,仅匀速排队 |
| 冷启动因子 | coldFactor | 默认 3,仅预热 |
流控效果 × 阈值类型
| QPS | 并发线程数 | |
|---|---|---|
| 快速失败 | ✅ | ✅ |
| Warm Up | ✅ | ❌ |
| 匀速排队 | ✅ | ❌ |
五、三种效果详解
5.1 快速失败(默认)
- 超限后立即拒绝,抛出
FlowException - 并发线程数=5:第 6 个请求立刻 Block,不排队
5.2 Warm Up 预热
- 当有大量数据进入时,缓慢接收少量逐渐递增,超过时间后,超出阈值的丢弃. 适合开机冷启动
- 适合缓存、连接池未就绪的场景
5.3 匀速排队
- 按 QPS 均匀放行,超限请求排队等待
- 超过
maxQueueingTimeMs仍排不上则失败
六、JSON 规则片段
完整持久化见 sentinel-规则持久化.md。
[{"resource":"order-service-print","limitApp":"default","grade":1,"count":5,"strategy":0,"controlBehavior":0,"warmUpPeriodSec":10,"maxQueueingTimeMs":500,"clusterMode":false}]| JSON 字段 | 说明 |
|---|---|
| controlBehavior | 0/1/2 对应三种效果 |
| warmUpPeriodSec | 预热时长,controlBehavior=1 时有效 |
| maxQueueingTimeMs | 排队超时,controlBehavior=2 时有效 |
参考官方文档
- 流量控制 · Sentinel Wiki
- Sentinel 概述 · Spring Cloud Alibaba
