赞
踩
从上一个章节的流控来看,其实就能看出来,Sentinel的根本是只需要关注资源的定义,它就会对资源进行流控,上一个章节我们基于Sentinel Dashboard控制台对资源进行流控,但是不知道大家在实操过程中有没有发现一个问题,当服务重启,再回头看控制台的时候发现:所有的流控规则都消失了,其实这是因为相关数据都是保存在内存里的,一旦应用重启,这些数据就会被清楚,所以为了解决这个问题,Sentinel专门提供了动态数据源支持
目前,Sentinel支持多个数据源的拓展:Consul、ZK等等,下面我们主要讲一下集成Nacos实现动态流控规则,步骤如下:
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> <version>1.7.0</version> </dependency>
- spring:
- application:
- name: sentinel-server
- cloud:
- sentinel:
- transport:
- dashboard: 127.0.0.1:8080
- datasource: #支持redis、zk等中间件,用哪一个,下面的- key就跟上哪一个即可
- - nacos:
- server-addr: 127.0.0.1:8848
- data-id: ${spring.application.name}-nacos
- group-id: DEFAULT_GROUP
- data-type: json
- rule-type: flow
- @RestController
- public class DashController {
- @GetMapping("/dash")
- public String dash(){
- return "dash";
- }
- }
这个资源名,会在服务启动的时候,加载nacos刚才配置的资源,然后调用/dynamic接口,会出现限流json,如下:
至此,动态限流规则就完成了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。