使用 Nacos 存储 Sentinel 规则信息

开发 前端
我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。

[[400589]]

Sentinel 规则配置,一旦我们重启服务过后,所有的规则都会消失。我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。

之前的项目我们通过 Nacos 来作为服务注册中心和服务配置中心,我们也可以将 Nacos 作为 Sentinel 的配置数据存储仓库,来为我们提供Sentinel 配置数据的持久化。 如下图所示


增加 Nacos 存储依赖

需要独立引入如下依赖,来申明 sentinel 的规则数据存储在 nacos 中。

  1. <dependency> 
  2.   <groupId>com.alibaba.csp</groupId> 
  3.   <artifactId>sentinel-datasource-nacos</artifactId> 
  4. </dependency> 

添加 YML 配置

我们如果使用 Sentinel 的独立数据源功能,那么需要在 yaml 文件中申明数据源配置信息。

  1. spring: 
  2.   application: 
  3.     name: stock-service 
  4.   profiles: 
  5.     active: dev 
  6.   cloud: 
  7.     sentinel: 
  8.       transport: 
  9.         port: 8719 
  10.         dashboard: localhost:8080 
  11.       enabled: true 
  12.       datasource: 
  13.         ds: 
  14.           nacos: 
  15.             dataId: ${spring.application.name}-flow-rules 
  16.             groupId: DEFAULT_GROUP 
  17.             data‐type: json 
  18.             rule‐type: flow 

Nacos 增加配置

在 Nacas 配置中心,我们需要添加规则配置并且发布,这里需要注意 dataId 和 groupId 一定不要搞错,不然会导致找不到数据配置,如下图所示:

数据模板

  1.   { 
  2.     "resource""abc"
  3.     "controlBehavior": 0, 
  4.     "count": 20.0, 
  5.     "grade": 1, 
  6.     "limitApp""default"
  7.     "strategy": 0 
  8.   } 

 最后我们启动服务和 Sentinel 控制台,就可以在流控信息这个菜单下面查看到我们在配置中心定义的流控信息。

 Sentinel 查看配置

总结

至此我们就完成了,Sentinel 对规则持久化到 Nacos 的全部操作。这里有一个小小的问题就是我们在 Sentinel 控制台修改规则过后默认不能直接同步到 Nacos 中,如果需要同步到 Nacos 中的需要修改 Sentinel 控制台的源码,配置信息通过 “推模式”同步到 Nacos 中存储。

更多的 Sentinel 使用可以参考官方文档,文档地址:

https://github.com/alibaba/Sentinel/wiki/Sentinel-%E6%8E%A7%E5%88%B6%E5%8F%B0%EF%BC%88%E9%9B%86%E7%BE%A4%E6%B5%81%E6%8E%A7%E7%AE%A1%E7%90%86%EF%BC%89#%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE

 

责任编辑:姜华 来源: 运维开发故事
相关推荐

2021-05-17 07:50:06

流控规则Sentinel

2024-04-25 16:17:53

SentinelNacos数据源

2023-10-17 17:13:14

内存程序源码

2022-05-25 08:42:32

sentinel流控规则

2021-05-14 07:45:07

Sentinel 接口限流

2023-10-07 12:06:52

2022-08-16 08:19:04

Sentinel微服务

2024-04-29 08:05:34

NacosJava数据结构

2010-10-26 17:41:05

Oracle索引

2023-09-18 14:39:02

2022-05-22 09:48:47

微服务Sentinel

2023-02-27 09:32:00

微服务Nacos

2022-06-13 09:58:06

NacosSpring

2021-08-02 07:35:19

Nacos配置中心namespace

2020-07-13 09:09:23

Sentinel源码Bucket

2009-12-08 18:31:58

WCF WEB

2022-04-30 11:10:40

Nacos集群环境企业

2009-12-15 11:08:25

Microsoft S

2010-03-04 15:40:14

Python单元测试

2010-06-17 11:08:07

SQL Server
点赞
收藏

51CTO技术栈公众号