通过前面的讲解,我们已经知道,可以通过Dashboard来为每个Sentinel客户端设置各种各样的规则,但是这里有一个问题,就是这些规则默认是存放在内存中,极不稳定,所以需要将其持久化。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210628155332135.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MTUzOTY3,size_16,color_FFFFFF,t_70#pic_center)
添加依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
在yml文件下添加nacos配置
sentinel:
transport:
dashboard: localhost:8080
port: 8719 #默认8719,假如被占用了会自动从8719开始依次+1扫描。直至找到未被占用的端口
datasource:
ds1:
nacos:
server-addr: localhost:8848
dataId: order-service #当前的微服务名称
groupId: com.test
data-type: json
rule-type: flow
添加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 #是否集群
}]