2026/4/5 12:14:12
网站建设
项目流程
个人备案网站建设方案书,重庆seo快速优化,宜昌建设银行网站,wordpress怎么做淘客网站Sentinel Spring Cloud 微服务接口限流示例
博主介绍的这个项目基于 Sentinel 实现 Spring Cloud 微服务接口限流功能#xff0c;演示如何使用 Sentinel 进行接口限流配置和测试#xff0c;并通过 Nacos 实现规则持久化。
代码下载地址
https://cloud.189.cn/t/6v6VFz3YRB…Sentinel Spring Cloud 微服务接口限流示例博主介绍的这个项目基于 Sentinel 实现 Spring Cloud 微服务接口限流功能演示如何使用 Sentinel 进行接口限流配置和测试并通过 Nacos 实现规则持久化。代码下载地址https://cloud.189.cn/t/6v6VFz3YRBjy访问码ipp3技术栈以下版本经过严格适配性验证不要轻易调整版本Spring Boot 2.0.6Spring Cloud Finchley.SR2Sentinel 1.7.0Nacos 1.1.4Docker项目结构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 Composedocker-compose-f sentinel-compose.yml up -d2. 部署 Nacos用于规则持久化方法一使用部署脚本# 在 Windows PowerShell 中执行bashdeploy-nacos.sh方法二直接使用 Docker Composedocker-compose-f nacos-compose.yml up -d3. 构建并运行 Java 应用# 构建项目mvn clean package# 设置 Sentinel Dashboard 地址替换为实际 IPexportSENTINEL_DASHBOARD_ADDR192.30.0.95:8858# 运行应用java -jar target/sentinel-springcloud-demo-1.0-SNAPSHOT.jar4. 测试接口触发接口调用Sentinel 采用懒加载机制需要先调用接口# 多次调用接口触发 Sentinel 监控curlhttp://localhost:8080/api/test测试限流效果# 快速连续调用接口测试限流效果for((i1;i10;i));docurlhttp://localhost:8080/api/testechodoneSentinel Dashboard 配置访问地址地址http://192.30.0.95:8858用户名sentinel密码sentinel配置限流规则登录 Sentinel Dashboard在左侧菜单选择 “簇点链路”找到 “test” 资源由 SentinelResource(value “test”) 定义点击右侧的 “流控” 按钮配置限流规则例如QPS2规则持久化配置的规则会自动持久化到 Nacos应用重启后规则依然有效。Nacos 配置信息地址http://192.30.0.95:8848用户名nacos密码nacos命名空间public配置IDsentinel-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:flow2. 环境变量配置环境变量说明默认值SENTINEL_DASHBOARD_ADDRSentinel Dashboard 服务器地址192.30.0.95:88583. 网络配置Sentinel Dashboard 端口8858Web 访问端口Sentinel 通信端口8719Dashboard 与客户端通信端口Java 应用端口8080应用访问端口Nacos 端口8848配置中心端口跨服务器部署如果 Java 应用、Sentinel Dashboard 和 Nacos 部署在不同服务器1. 在 Java 应用服务器上设置环境变量# Linux/macOSexportSENTINEL_DASHBOARD_ADDRsentinel服务器IP:8858# Windows PowerShell$env:SENTINEL_DASHBOARD_ADDRsentinel服务器IP:88582. 网络连通性要求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.ymlSentinel Dashboard 的 Docker 部署配置使用 host 网络模式确保与外部 Java 应用通信。2. deploy-sentinel.shSentinel Dashboard 部署脚本包含容器管理、状态检查和访问信息输出。3. nacos-compose.ymlNacos 服务的 Docker 部署配置包含认证配置。4. deploy-nacos.shNacos 服务部署脚本包含容器管理、状态检查和访问信息输出。5. docker-compose.yml完整部署配置包含 Sentinel Dashboard、Nacos 和 Java 应用的联合部署。测试结果正常响应Hello, Sentinel!限流响应请求过于频繁请稍后再试监控与管理Sentinel Dashboardhttp://192.30.0.95:8858Nacos 配置中心http://192.30.0.95:8848应用接口http://localhost:8080/api/test参考文档Sentinel 官方文档Spring Cloud Alibaba Sentinel 文档Nacos 官方文档