问题描述
Sentinel Dashboard中添加的规则是存储在内存中的,只要项目一重启规则就丢失了
此处将规则持久化到nacos中,在nacos中添加规则,然后同步到dashboard中;
后面研究如果将dashboard中添加的规则自动添加到nacos中
官网教程地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
实现过程
1.导入依赖包
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR2</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>0.9.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> <version>1.5.2</version> </dependency> </dependencies>
2.在application.properties中配置sentinel-nacos信息
spring.application.name=mz server.port=8003 # sentinel dashboard spring.cloud.sentinel.transport.dashboard=localhost:8080 spring.cloud.sentinel.datasource.ds1.nacos.server-addr=localhost:8848 spring.cloud.sentinel.datasource.ds1.nacos.data-id=mz-sentinel spring.cloud.sentinel.datasource.ds1.nacos.group-id=DEFAULT_GROUP spring.cloud.sentinel.datasource.ds1.nacos.data-type=json spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow
3.在nacos中添加规则
[ { "resource": "/hello", "limitApp": "default", "grade": 1, "count": 5, "strategy": 0, "controlBehavior": 0, "clusterMode": false } ]
4.创建测试类
@RestController public class Test { @GetMapping("/hello") public String hello() { return "hello sentinel"; } }
访问几次接口之后,就可以在Sentinel Dashboard 中看到在nacos中配置的规则信息了,并且项目服务重启依然存在
本文参考:http://blog.didispace.com/spring-cloud-alibaba-sentinel-2-1/