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中定义策略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-985MhFr1-1624717843189)(C:\\Users\\java1234\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210626205619653.png)]

[
    {
		"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里的配置,频繁刷新也能流控;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JcJlvygc-1624717843190)(C:\\Users\\java1234\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210626210644621.png)]

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

以上是关于sentinel整合nacos实现配置持久化的主要内容,如果未能解决你的问题,请参考以下文章

Sentinel+Nacos实现Sentinel的持久化规则,就很nice!

Sentinel 实现 pull 模式规则持久化

Sentinel 实现 pull 模式规则持久化

#yyds干货盘点# springcloud整合Sentinel使用Nacos存储规则

Sentinel动态规则,使用 Nacos 配置规则

sentinel配置持久化到nacos与sentinel集成