SpringCloud Alibaba Sentinel限流熔断降级(七)--------------控制台推送限流\熔断规则到Nacos数据源(精简版)

本篇博客提供了一种快速启动Sentinel控制台和客户端,使用Nacos作为动态数据源的方法。通过修改配置文件,设置Sentinel控制台和Nacos服务器地址,实现了规则的推送。在本地环境下,所有组件启动后,可以通过发送请求观察Sentinel客户端的规则在Nacos中的更新情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面一篇博客说明了如何在控制台源码上修改,实现限流和熔断规则推送到Nacos数据源,可能有的小伙伴希望快速跑起来,而不是一步步的去改代码,所以本篇文章介绍如何快速启动  Sentinel控制台和客户端 采用Nacos动态数据源

以下操作都是在以下工程代码基础上:https://github.com/xujingle1995/AlibabaSentinelSimple

nacos  server的启动就不说了,自行启动

控制台启动 

 下载控制台jar包后,运行启动命令

java -jar sentinel-dashboard.jar --nacos.server.address=你的nacosserverIP地址:8848

启动后可以看到就是控制台就是个springboot工程 

 修改客户端

 客户端导入eclipse后如下图

修改配置文件,修改三处即可 ,分别是前面启动的控制台的地址以及nacos  server的地址

如果你是在你的客户端上进行修改,那么还需要加一个配置类:将这个类复制到你的工程中即可

如果nacos server   sentinel  以及客户端都是在本地启动,那么都是localhost

启动客户端 

请求一下客户端:http://localhost:8090/hello/xjl (不请求在控制台看不到客户端)

请求http://localhost:8090/actuator/sentinel可以查看你的客户端当前的所有规则

添加一条流控或者降级规则,在nacos  server 就可以看到了 在public命名空间下

### Spring Boot 集成 Sentinel Dashboard 实现限流熔断功能 #### 1. 添加依赖项 为了在 Spring Boot 中集成 Sentinel 并启用其监控仪表盘,在 `pom.xml` 文件中需引入必要的 Maven 依赖: ```xml <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>${sentinel.version}</version> </dependency> <!-- 如果需要使用 Web 控制台 --> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-web-servlet</artifactId> <version>${sentinel.version}</version> </dependency> ``` 对于集群环境的支持,则还需额外添加如下依赖来支持数据持久化以及动态规则推送[^1]: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> ``` #### 2. 启动类配置 确保应用程序启动时能够自动注册至 Nacos 或其他服务发现组件,以便于集群内的节点互相感知。这通常通过设置合适的 spring cloud alibaba nacos discovery 属性完成。 #### 3. 应用程序属性文件配置 编辑 application.yml (或 .properties),指定哨兵控制台地址和其他必要参数: ```yaml spring: cloud: sentinel: transport: dashboard: localhost:8080 # 哨兵UI界面所在位置 management: endpoints: web: exposure: include: '*' server: port: ${PORT:8765} ``` 以上配置使得应用可以连接到本地运行的 Sentinel UI 界面实例上,并开放管理端点用于外部访问。 #### 4. 编写业务逻辑代码并定义资源保护策略 利用 @SentinelResource 注解标记受控方法,同时可以在其中声明降级处理函数等细节。例如: ```java import com.alibaba.csp.sentinel.annotation.SentinelResource; // ... @RestController public class MyController { @GetMapping("/testA") @SentinelResource(value = "resourceName", blockHandlerClass = BlockExceptionHandler.class, blockHandler = "handleException") public String test() { return "Hello World"; } } @Component class BlockExceptionHandler { public static String handleException(BlockException ex){ // 处理异常... return "Oops! The service is busy."; } } ``` 上述例子展示了如何为特定 API 接口设定流量控制措施,当请求量超出预设阈值时触发自定义错误响应机制。 #### 5. 运行多个实例模拟集群场景 在同一网络环境中部署多份相同的应用副本,各自监听不同端口号,以此构建简单的微服务体系架构来进行测试验证。注意调整各节点间的通信方式以适应实际生产需求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值