Sentinel实战教程:流量控制与Spring Boot集成
1. Sentinel简介与核心概念
1.1 什么是Sentinel?
Sentinel是阿里巴巴开源的流量控制组件,主要用于微服务架构中的流量防护。它通过限流、熔断、热点防护等机制,帮助系统在高并发场景下保持稳定运行。
1.2 核心功能与术语
- 流控规则:限制接口的请求量(QPS/并发)。
- 熔断规则:根据错误率或异常数自动中断请求。
- 热点规则:针对特定参数值的流量控制。
- 授权规则:通过白名单/黑名单控制应用访问权限。
2. Sentinel控制台快速上手
2.1 下载与启动控制台
-
下载地址:Sentinel GitHub Release
-
启动命令:
# 默认方式 java -jar sentinel-dashboard-1.8.4.jar
启动如下图:
-
访问地址:
http://localhost:8080
(默认账号密码:sentinel/sentinel
)。
搭建测试手工访问接口,查看监控效果如下图:
一般可以设置账号密码启动如下:
java -jar -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboard.auth.password=123456 -Dserver.servlet.session.timeout=7200 sentinel-dashboard-1.8.4.jar
2.2 规则配置实战
2.2.1 流控规则配置
- 进入资源列表:点击左侧菜单栏的 “簇点链路”。
注意:springboot客户集成首次登陆可能没有数据,操作后台发送请求后才会产生数据。
- 新增流控规则:
- 资源名:填写接口路径(如
/backend/common/supplierlist
)。 - 阈值类型:选择
QPS
或并发线程数
。 - 单机阈值:设置限流阈值(如
2
)。 - 流控效果:选择
快速失败
或排队等待
。 - 是否集群:勾选以启用集群模式。
操作如下图:
测试生效如下图:
更换流控效果方式:
页面不断访问,排除生效如下图:
- 资源名:填写接口路径(如
2.2.2 熔断规则配置
- 进入熔断规则页面:点击“熔断规则”。
- 新增熔断规则:
- 资源名:填写接口路径(如
/backend/resources/chargeMerchant/list
)。 - 熔断策略:选择
异常比例
或慢调用比例
。 - 统计时长:设置统计窗口(如
1000ms
)。 - 最小请求数:设置触发条件的最小请求数(如
5
)。
- 资源名:填写接口路径(如
熔断测试,主要针请求时间过长或返回错误,这里不再测试。
2.2.3 热点规则配置
- 进入热点规则页面:点击“热点规则”。
- 新增热点规则:
- 资源名:填写接口路径(如
/backend/resources/xxx/list
)。 - 参数索引:指定热点参数的位置(如
0
)。 - 单机阈值:设置单参数的QPS阈值(如
10
- 资源名:填写接口路径(如