前言
在上一篇,我们讲解了基于springboot与Sentinel的整合与使用,但是有个很明显的问题就是,一旦服务重启,当前配置的针对某个接口的规则就丢掉了,然后就需要重新再配一遍,这就很坑爹了,如果开发中需要配置的接口太多,这样岂不是让人疯掉
因此需要一个地方来保存dashboard中配置的规则,Sentinel提供了多种持久化的方案,可以集成redis,mysql等,这里为了演示方便,而且与springcloud-alibaba一整套微服务框架无缝集成,使用nacos做规则的保存,下面来看具体的使用步骤吧
1、pom文件导入如下依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
2、yml中简单配置
sentinel:
transport:
dashboard: localhost:9100
datasource:
ds1:
nacos:
server-addr: IP:8848 #nacos的地址
dataId: order-flow-rules
groupId: DEFAULT_GROUP
data-type: json
rule_type: flow
3、nacos中新增规则配置文件
[
{
"resource": "/testFlow",
"limitApp":"default",
"grade":1,
"count":2,
"strategy":0,
"controlBehavior":0,
"clusterMode":false
}
]
注意该规则文件的dataId即为yml配置文件中的dataId
naocs配置简单解释:
resource:资源名称
limitApp:来源应用
grade:阀值类型,0:线程数,1:QPS
count:单机阀值
strategy:流控模式,0:直接,1:关联,2:链路
controlBehavior:流控效果,0:快速失败,1:warmUp,2:排队等待
clusterMode:是否集群
这里的规则说明简易结合dashboard控制台一起看,会更好的理解配置含义
下面来开始测试一下吧
1、启动本地的Sentinel的服务
2、浏览器访问一下当前配置规则中对应的接口 /testFlow
3、观察dashboard中的变化
发现竟然有一条配置规则在里面,我们并没有在dashboard中进行配置,可见是直接加载nacos中配置的规则
4、验证规则是否生效,快速刷新出现下面的效果
5、断开本地微服务,重新启动后刷一次接口,验证规则是否还能重新加载
可以看到dashboard中规则可以正常加载,说明我们的配置规则持久化到sentinel是有效的
本篇内容比较简单,主要是为今后在使用Sentinel时配置持久化规则提供一个快速整合的思路,希望对看到的小伙伴有用,本篇到此结束,最后感谢观看!
需要源码的同学可前往下载
https://download.csdn.net/download/zhangcongyi420/15402038






还没有评论,来说两句吧...