news 2026/4/1 12:51:06

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/3/30 22:40:28

Flamingo多模态大模型实战教程:原理解析 + 图文理解应用,打造智能交互新体验

文章目录 多模态大模型Flamingo实战指南:开启图文交互的智能新纪元 一、技术引力:Flamingo为何是多模态的“破局者”? 二、技术解构:Flamingo的“智能内核” 1. 三大核心模块 2. 技术优势 三、环境搭建:一键配置多模态开发环境 1. 基础依赖安装 2. 下载Flamingo源码与模型…

作者头像 李华
网站建设 2026/3/31 3:58:07

企业网站制作公司对比:2026年十大靠谱网站建设公司盘点

在数字经济深度渗透的2026年&#xff0c;企业官网已从单纯的“线上名片”进化为承载品牌价值传递、用户精准转化与全链路数据沉淀的核心数字化阵地。面对AI智能交互、3D沉浸式体验、移动端优先等技术趋势&#xff0c;选择适配的网站建设服务商成为企业数字化转型的关键决策。本…

作者头像 李华
网站建设 2026/3/27 12:24:46

基于spring+vue的在线教育微信小程序[spring]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着移动互联网的快速发展&#xff0c;在线教育作为一种新兴的教育模式受到广泛关注。微信小程序的普及为在线教育提供了新的平台和机遇。本文介绍了一个基于SpringVue框架的在线教育微信小程序的设计与实现。该系统利用Spring框架构建后端服务&#xff0c;提供…

作者头像 李华
网站建设 2026/3/27 17:13:00

导致BSCI认证不通过的问题有哪些?

BSCI验厂是由倡议商界遵守社会责任组织发起的一项全球供应链社会责任审核项目&#xff0c;旨在确保供应商遵守社会责任标准&#xff0c;包括遵守法律、尊重人权、保护劳工权益、确保工作环境安全健康等方面。BSCI验厂不通过&#xff0c;通常是因为劳工权益、安全卫生或管理体系…

作者头像 李华
网站建设 2026/3/30 10:49:22

2026必备!继续教育必看!9款AI论文工具深度测评

2026必备&#xff01;继续教育必看&#xff01;9款AI论文工具深度测评 2026年度学术写作工具测评&#xff1a;如何选到最适合你的AI助手 随着人工智能技术的不断进步&#xff0c;AI论文工具已经成为高校师生和研究人员不可或缺的得力助手。然而&#xff0c;面对市场上琳琅满目…

作者头像 李华