Spring Boot 集成 Sentinel 实现限流与降级需三步:引入 spring-cloud-starter-alibaba-sentinel 依赖并确保版本兼容;启动 sentinel-dashboard 并在 application.yml 中配置 dashboard 地址;通过 @SentinelResource 注解定义资源,再在控制台或 Nacos/本地文件中配置流控与降级规则,配合 blockHandler 和 fallback 实现兜底。

Spring Boot 集成 Sentinel 实现限流与降级,核心在于三步:引入依赖、连接控制台、定义规则并绑定资源。它不依赖复杂中间件,也不需要手动编码拦截逻辑,重点是把“流量控制”和“异常响应”解耦到配置层。
引入 Sentinel 客户端依赖
在 pom.xml 中添加 Spring Cloud Alibaba Sentinel Starter:
- 使用 Maven 管理依赖,确保版本兼容(如 Spring Boot 2.7.x 对应 Sentinel 1.8.x,Spring Boot 3.x 推荐用 2.2.x+)
- 必须包含
spring-cloud-starter-alibaba-sentinel,它自动集成 Web 自动适配、Feign/Spring Cloud Gateway 支持 - 若用 OpenFeign 调用下游服务,还需开启 Feign 的 Sentinel 支持:
feign.sentinel.enabled=true
启动并连接 Sentinel 控制台
控制台是可视化管理规则的入口,本身是个独立 Spring Boot 应用:
- 从 GitHub Releases 下载最新
sentinel-dashboard-x.x.x.jar - 命令行启动:
java -Dserver.port=8080 -jar sentinel-dashboard-x.x.x.jar - 在应用的 application.yml 中配置连接地址:
spring:<br> cloud:<br> sentinel:<br> transport:<br> dashboard: localhost:8080
- 首次访问控制台需登录,默认账号密码均为
sentinel
定义资源并配置限流/降级规则
规则生效的前提是:接口被 Sentinel 识别为“资源”,且规则匹配该资源名:
- 最简单方式是在 Controller 方法上加
@SentinelResource("order-query"),其中order-query即资源名 - 限流规则可在控制台「流控规则」页新增:选择资源名、QPS 模式、阈值(如 5)、流控效果(快速失败 / 排队等待 / 预热)
- 降级规则在「降级规则」页配置:基于平均响应时间、异常比例或异常数触发,例如响应超 1s 且连续 5 次,就熔断 10 秒
- 搭配
blockHandler(限流兜底)和fallback(降级兜底)方法,返回友好提示或缓存数据
让规则持久化(避免重启丢失)
控制台配置默认只存在内存中,生产环境务必持久化:
- 推荐对接 Nacos:在
application.yml中启用 Nacos 数据源,并在 Nacos 配置中心新建 JSON 格式规则 - 本地文件方式适合测试:指定
spring.cloud.sentinel.datasource.ds1.file.file路径,放一个含流控规则的 JSON 文件 - 无论哪种方式,都要确保客户端监听配置变更,规则才能动态生效

















