VSCode 配置 Spring Cloud Sentinel:服务熔断与限流

Sentinel 是阿里巴巴开源的轻量级流量控制组件,广泛应用于微服务架构中实现熔断、限流等功能。以下指南详细说明如何在 VSCode 中配置 Spring Cloud Sentinel。


环境准备

确保已安装以下工具:

  • JDK 1.8 或更高版本
  • Maven 3.6+
  • VSCode 及插件:Java Extension Pack、Spring Boot Extension Pack

创建 Spring Boot 项目

通过 Spring Initializr 生成项目骨架:

  1. 访问 start.spring.io
  2. 选择 Maven、Java 及 Spring Boot 版本。
  3. 添加依赖:Spring Web、Spring Cloud Alibaba Sentinel。
  4. 下载项目并解压至工作目录。

配置 Sentinel 控制台

Sentinel 控制台用于实时监控和管理规则:

  1. 下载最新版 Sentinel 控制台 JAR 文件:
    wget https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar
    

  2. 启动控制台:
    java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -jar sentinel-dashboard-1.8.6.jar
    

  3. 访问 http://localhost:8080,默认账号密码为 sentinel

集成 Sentinel 到 Spring Cloud

修改 application.propertiesapplication.yml

# 启用 Sentinel
spring.cloud.sentinel.enabled=true
# 控制台地址
spring.cloud.sentinel.transport.dashboard=localhost:8080
# 应用名称(用于控制台显示)
spring.application.name=sentinel-demo


实现熔断与限流

限流规则配置

通过注解 @SentinelResource 定义资源:

@RestController
public class DemoController {
    @GetMapping("/test")
    @SentinelResource(value = "test", blockHandler = "handleBlock")
    public String test() {
        return "Success";
    }

    public String handleBlock(BlockException ex) {
        return "Request blocked by Sentinel";
    }
}

熔断规则配置

在控制台配置熔断规则:

  1. 访问 Sentinel 控制台,选择对应应用。
  2. 在“熔断规则”页面添加规则:
    • 资源名:test
    • 熔断策略:如慢调用比例(RT 阈值 500ms,比例阈值 0.5,熔断时长 5s)。

动态规则持久化

默认规则存储在内存中,重启后失效。可通过以下方式持久化:

  1. 使用 Nacos 作为配置中心:
    spring.cloud.sentinel.datasource.ds.nacos.server-addr=localhost:8848
    spring.cloud.sentinel.datasource.ds.nacos.dataId=${spring.application.name}-sentinel
    spring.cloud.sentinel.datasource.ds.nacos.groupId=DEFAULT_GROUP
    spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow
    

  2. 规则变更后自动同步至 Nacos。

测试与验证

  1. 启动 Spring Boot 应用。
  2. 通过 curl 或 Postman 频繁访问 /test 接口。
  3. 观察 Sentinel 控制台的实时监控和规则触发情况。

常见问题排查

  • 控制台无数据:检查应用是否注册到控制台,网络是否通畅。
  • 规则不生效:确认 @SentinelResource 注解配置正确,资源名匹配。
  • 持久化失败:验证 Nacos 配置中心连接参数是否正确。

通过以上步骤,可在 VSCode 中高效配置 Spring Cloud Sentinel,实现服务的熔断与限流功能。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐