sentinel整合nacos实现配置持久化
Posted java1234_小锋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sentinel整合nacos实现配置持久化相关的知识,希望对你有一定的参考价值。
细心的伙伴将会发现,当sentinel重新启动时,sentinel dashboard中原来的数据将会全部消失,这样就需要重新定义限流规则,无疑是不可取的。sentinel默认是把配置放内存里的。
我们可以将sentinel中定义的限流规则保存到Nacos配置中心里面,实现持久化。
nacos视频教程地址:http://www.java1234.vip/course/151
具体实现步骤:
1,添加sentinel的nacos支持
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
2,在nacos中定义策略
[
{
"resource": "helloWorld_springcloud",
"limitApp": "default",
"grade": 1,
"count": 2,
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
}
]
Data Id :和配置中的data_id相对应
Group:配置文件中的group-id
配置内容:
resource:接口名,即限流规则的作用对象
limitApp:流控针对的调用来源,若为 default 则不区分调用来源
grade:限流阈值类型(QPS 或并发线程数);0代表根据并发数量来限流,1代表根据QPS来进行流量控制
count:限流阈值
strategy:调用关系限流策略( 直接、链路、关联 )
controlBehavior:流量控制效果(直接拒绝、Warm Up、匀速排队)
clusterMode:是否为集群模式
3,项目配置,sentinel下面的dataSource中配置nacos
spring:
application:
name: sentinel_springcloud # 设置应用名称
cloud:
sentinel:
transport:
dashboard: localhost:8080 # 设置Sentinel连接控制台的主机地址和端口
datasource:
ds:
nacos:
server-addr: localhost:8848 # nacos连接地址
group-id: DEFAULT_GROUP # nacos连接的分组
rule-type: flow # 流控规则 rule-type 配置表示该数据源中的规则属于哪种类型的规则(flow,degrade,authority,system, param-flow, gw-flow, gw-api-group)
data-id: java1234-sentinel # 读取配置文件的 data-id
data-type: json # 读取培训文件类型为json
4,测试
我们启动项目,发现sentinel控制台读取到了nacos里的配置,频繁刷新也能流控;
微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。
以上是关于sentinel整合nacos实现配置持久化的主要内容,如果未能解决你的问题,请参考以下文章
Sentinel+Nacos实现Sentinel的持久化规则,就很nice!