news 2026/4/22 12:23:34

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 9:47:38

RDMA设计36:验证环境设计

本博文主要交流设计思路&#xff0c;在本博客已给出相关博文160多篇&#xff0c;希望对初学者有用。注意这里只是抛砖引玉&#xff0c;切莫认为参考这就可以完成商用IP设计。 验证平台的主要功能是为待测设备提供激励信号并监测其相关接口&#xff0c;通过与参考模型的结果进行…

作者头像 李华
网站建设 2026/4/17 18:57:44

零基础玩转风格迁移与GAN:原理讲透 + 趣味实战,快速生成艺术图与创意图像

文章目录 零基础入门风格迁移与GAN:从原理到趣味实践 引言:当技术邂逅艺术,AI如何玩转“风格穿越”? 一、风格迁移:让图像在艺术风格间“穿越” 1. 什么是风格迁移? 2. 如何实现风格迁移?靠神经网络“拆解+重组” (1)内容损失:确保“灵魂不变” (2)风格损失:确保“…

作者头像 李华
网站建设 2026/4/17 7:25:13

BRC-200控制器板

BRC-200 控制器板BRC-200 是一款用于工业自动化系统中的 控制器板&#xff0c;主要承担系统核心控制、逻辑运算与数据处理任务&#xff0c;常作为控制系统的主控单元或智能控制节点使用。主要功能与特点&#xff1a;作为系统核心控制单元&#xff0c;执行控制逻辑与运算任务支持…

作者头像 李华
网站建设 2026/4/18 7:01:09

鼎捷ERP和MES系统集成方案详解,如何实现现有软件无缝对接?

某汽车零部件制造商通过上述方法将ERP与MES系统对接后&#xff0c;生产数据流转效率提升40%&#xff1b;某零售电商平台整合订单与仓储系统&#xff0c;使订单处理时长缩短至500毫秒内&#xff0c;错误率下降至0.01%。为实现新系统与既有架构的平滑集成&#xff0c;应基于业务流…

作者头像 李华
网站建设 2026/4/17 17:35:01

【课程设计/毕业设计】基于协同过滤推荐算法的线上安全教育平台设计与实现基于springboot+协同过滤课程推荐的线上安全教育平台【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/4/17 5:52:40

SPEC CODING实战:构建高性能微服务架构

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 在快马平台上开发一个微服务示例项目&#xff0c;展示SPEC CODING在实际开发中的应用。项目包括用户认证、订单处理和支付三个微服务&#xff0c;要求使用Spring Boot和Docker容器…

作者头像 李华