Java中的Sentinel规则持久化详解
更新时间:2023年09月12日 09:44:08 作者:小钟要学习!!!
这篇文章主要介绍了Java中的Sentinel规则持久化详解,将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效,需要的朋友可以参考下
Sentinel规则持久化
根据之前遇到的问题可以看出,当服务关闭后Sentinel就不会再有对应的信息,也就是临时保存的,下面就是要进行持久化的保存
将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效
1、修改cloudalibaba-sentinel-service8401模块
1.1、引入pom.xml依赖
<!--SpringCloud ailibaba sentinel-datasource-nacos --> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> </dependency>
1.2、修改YAML配置文件
server: port: 8401 spring: application: name: cloudalibaba-sentinel-service cloud: nacos: discovery: #Nacos服务注册中心地址 server-addr: localhost:8848 sentinel: transport: #配置Sentinel dashboard地址,8080监控8401 dashboard: localhost:8080 #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口 port: 8719 datasource: # 持久化保存到nacos中 ds1: nacos: server-addr: localhost:8848 dataId: cloudalibaba-sentinel-service groupId: DEFAULT_GROUP data-type: json rule-type: flow # 图像化展示,暴露所有端口 management: endpoints: web: exposure: include: '*'
2、添加Nacos业务规则配置
[ { "resource": "/rateLimit/byUrl", // --------资源名称 "limitApp": "default", // --------来源应用 "grade": 1, // ------ 阈值类型,0表示线程数,1表示QPS "count": 1, // ------ 单机阈值 "strategy": 0, // ------- 流控模式,0表示直接,1表示关联,2表示链路 "controlBehavior": 0, // -------- 流控效果,0表示快速失败,1表示Warm Up,2表示排队等待; "clusterMode": false // 是否集群。 } ]
3、重启8401测试
- 访问://localhost:8401/rateLimit/byUrl
- 查看Sentinel控制台是否有流控规则
- 关闭8401访问,流控规则消失
- 再次重启访问,并请求一次被Sentinel监控到流控规则出现
到此这篇关于Java中的Sentinel规则持久化详解的文章就介绍到这了,更多相关Sentinel规则持久化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论