news 2026/4/18 12:36:40

Sentinel Spring Cloud 微服务接口限流完整代码案例及代码下载地址分享(适配古老的Spring Boot 2.0.6版本)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sentinel Spring Cloud 微服务接口限流完整代码案例及代码下载地址分享(适配古老的Spring Boot 2.0.6版本)

Sentinel Spring Cloud 微服务接口限流示例

博主介绍的这个项目基于 Sentinel 实现 Spring Cloud 微服务接口限流功能,演示如何使用 Sentinel 进行接口限流配置和测试,并通过 Nacos 实现规则持久化。

代码下载地址

https://cloud.189.cn/t/6v6VFz3YRBjy(访问码:ipp3)

技术栈

以下版本经过严格适配性验证,不要轻易调整版本!!!

  • Spring Boot 2.0.6
  • Spring Cloud Finchley.SR2
  • Sentinel 1.7.0
  • Nacos 1.1.4
  • Docker

项目结构

sentinel-springcloud-demo/ ├── src/ │ └── main/ │ ├── java/com/zhangxueliang/demo/ │ │ ├── Application.java # 应用主类(含 Nacos 数据源配置) │ │ └── TestController.java # 测试控制器(带限流注解) │ └── resources/ │ └── application.yml # 应用配置(含 Nacos 配置) ├── target/ # 构建输出目录 ├── deploy-sentinel.sh # Sentinel Dashboard 部署脚本 ├── sentinel-compose.yml # Sentinel Dashboard Docker 配置 ├── deploy-nacos.sh # Nacos 部署脚本 ├── nacos-compose.yml # Nacos Docker 配置(含认证) ├── pom.xml # Maven 依赖配置 └── README.md # 项目说明文档

快速开始

1. 部署 Sentinel Dashboard

方法一:使用部署脚本

# 在 Windows PowerShell 中执行bashdeploy-sentinel.sh

方法二:直接使用 Docker Compose

docker-compose-f sentinel-compose.yml up -d

2. 部署 Nacos(用于规则持久化)

方法一:使用部署脚本

# 在 Windows PowerShell 中执行bashdeploy-nacos.sh

方法二:直接使用 Docker Compose

docker-compose-f nacos-compose.yml up -d

3. 构建并运行 Java 应用

# 构建项目mvn clean package# 设置 Sentinel Dashboard 地址(替换为实际 IP)exportSENTINEL_DASHBOARD_ADDR=192.30.0.95:8858# 运行应用java -jar target/sentinel-springcloud-demo-1.0-SNAPSHOT.jar

4. 测试接口

触发接口调用(Sentinel 采用懒加载机制,需要先调用接口):

# 多次调用接口,触发 Sentinel 监控curlhttp://localhost:8080/api/test

测试限流效果

# 快速连续调用接口,测试限流效果for((i=1;i<=10;i++));docurlhttp://localhost:8080/api/testecho""done

Sentinel Dashboard 配置

访问地址

  • 地址:http://192.30.0.95:8858
  • 用户名:sentinel
  • 密码:sentinel

配置限流规则

  1. 登录 Sentinel Dashboard
  2. 在左侧菜单选择 “簇点链路”
  3. 找到 “test” 资源(由 @SentinelResource(value = “test”) 定义)
  4. 点击右侧的 “流控” 按钮
  5. 配置限流规则(例如:QPS=2)

规则持久化

配置的规则会自动持久化到 Nacos,应用重启后规则依然有效。

Nacos 配置信息

  • 地址:http://192.30.0.95:8848
  • 用户名:nacos
  • 密码:nacos
  • 命名空间:public
  • 配置ID:sentinel-springcloud-demo-flow-rules
  • 配置组:SENTINEL_GROUP

配置说明

1. application.yml 配置

spring:application:name:sentinel-springcloud-demoserver:port:8080# Sentinel 配置spring.cloud.sentinel:transport:# Sentinel Dashboard 服务器地址dashboard:${SENTINEL_DASHBOARD_ADDR:192.30.0.95:8858}# Sentinel 客户端与 Dashboard 通信端口port:8719datasource:flow:nacos:server-addr:192.30.0.95:8848data-id:sentinel-springcloud-demo-flow-rulesgroup-id:SENTINEL_GROUPrule-type:flow

2. 环境变量配置

环境变量说明默认值
SENTINEL_DASHBOARD_ADDRSentinel Dashboard 服务器地址192.30.0.95:8858

3. 网络配置

  • Sentinel Dashboard 端口:8858(Web 访问端口)
  • Sentinel 通信端口:8719(Dashboard 与客户端通信端口)
  • Java 应用端口:8080(应用访问端口)
  • Nacos 端口:8848(配置中心端口)

跨服务器部署

如果 Java 应用、Sentinel Dashboard 和 Nacos 部署在不同服务器:

1. 在 Java 应用服务器上设置环境变量

# Linux/macOSexportSENTINEL_DASHBOARD_ADDR=sentinel服务器IP:8858# Windows PowerShell$env:SENTINEL_DASHBOARD_ADDR="sentinel服务器IP:8858"

2. 网络连通性要求

  • Java 应用服务器能够访问 Sentinel Dashboard 服务器的 8858 端口
  • Sentinel Dashboard 服务器能够访问 Java 应用服务器的 8719 端口
  • Java 应用服务器能够访问 Nacos 服务器的 8848 端口

常见问题排查

1. 应用在 Sentinel Dashboard 中显示失联

可能原因

  • 网络连通性问题
  • 端口被占用
  • 环境变量配置错误

解决方法

  • 检查网络连通性:ping sentinel服务器IP
  • 检查端口是否可访问:telnet sentinel服务器IP 8858
  • 检查 Java 应用服务器的 8719 端口是否开放:netstat -an | findstr 8719
  • 确认 Docker 网络配置为 host 模式(在 sentinel-compose.yml 中)

2. 在 Sentinel Dashboard 中看不到接口

可能原因

  • 接口未被调用过(Sentinel 采用懒加载机制)
  • @SentinelResource 注解配置错误
  • AspectJ 依赖缺失

解决方法

  • 先调用接口:curl http://localhost:8080/api/test
  • 检查 @SentinelResource 注解配置
  • 确保添加了 spring-boot-starter-aop 依赖

3. 限流规则不生效

可能原因

  • 规则配置错误
  • 接口调用方式与规则不匹配
  • Sentinel 客户端与 Dashboard 通信异常
  • Nacos 配置中心连接失败

解决方法

  • 检查规则配置是否正确
  • 确保使用相同的资源名称进行配置
  • 检查 Sentinel Dashboard 中的应用状态是否为 “在线”
  • 检查 Nacos 服务是否正常运行
  • 检查 application.yml 中的 Nacos 配置是否正确

4. Nacos 认证错误 “user not found!”

可能原因

  • Nacos 认证配置错误
  • 客户端与服务器版本不匹配

解决方法

  • 确认 Nacos 服务版本与客户端版本匹配(本项目使用 Nacos 1.1.4)
  • 检查 nacos-compose.yml 中的认证配置
  • 确保 application.yml 中配置了正确的 Nacos 连接信息

部署脚本说明

1. sentinel-compose.yml

Sentinel Dashboard 的 Docker 部署配置,使用 host 网络模式确保与外部 Java 应用通信。

2. deploy-sentinel.sh

Sentinel Dashboard 部署脚本,包含容器管理、状态检查和访问信息输出。

3. nacos-compose.yml

Nacos 服务的 Docker 部署配置,包含认证配置。

4. deploy-nacos.sh

Nacos 服务部署脚本,包含容器管理、状态检查和访问信息输出。

5. docker-compose.yml

完整部署配置,包含 Sentinel Dashboard、Nacos 和 Java 应用的联合部署。

测试结果

正常响应

Hello, Sentinel!

限流响应

请求过于频繁,请稍后再试!

监控与管理

  • Sentinel Dashboard:http://192.30.0.95:8858
  • Nacos 配置中心:http://192.30.0.95:8848
  • 应用接口:http://localhost:8080/api/test

参考文档

  • Sentinel 官方文档
  • Spring Cloud Alibaba Sentinel 文档
  • Nacos 官方文档
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:04:02

Java毕设选题推荐:基于SpringBoot+Vue的会议室预基于springboot的面向企业用户的复合型活动基地,活动场地,会议室预订系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 2:05:26

新手必看:ESP32固件库下载与WiFi配网步骤

以下是对您提供的博文内容进行 深度润色与结构重构后的技术文章 。整体遵循您的全部要求&#xff1a; ✅ 彻底去除AI痕迹&#xff0c;语言自然、专业、有“人味”&#xff1b; ✅ 摒弃模板化标题&#xff08;如“引言”“总结”&#xff09;&#xff0c;全文以逻辑流驱动&a…

作者头像 李华
网站建设 2026/4/18 2:02:30

无人机滑模控制模块详解

1.什么是滑模控制&#xff1f;滑模控制是一种变结构控制&#xff0c;属于非线性鲁棒控制方法。其核心思想是&#xff1a;1.设计一个滑模面&#xff08;SlidingSurface&#xff09;&#xff1a;一个在状态空间中的超平面或流形。当系统的状态轨迹被约束在这个面上时&#xff0c;…

作者头像 李华
网站建设 2026/4/18 2:08:34

国内iPaaS平台前十排行榜,鼎捷ERP和MES系统集成深度测评

企业数字化转型规模化落地阶段&#xff0c;iPaaS&#xff08;集成平台即服务&#xff09;已从可选工具升级为数字化基座&#xff0c;是打通数据孤岛、实现业务自动化的核心。ERP&#xff08;企业资源计划系统&#xff09;统筹全流程资源&#xff0c;MES&#xff08;制造执行系统…

作者头像 李华