当前位置: 首页 > 科技观察

使用Nacos存储Sentinel规则信息

时间:2023-03-12 21:18:18 科技观察

Sentinel规则配置,一旦我们重启服务,所有规则都会消失。我们可以通过Zookeeper、Applo、Nacos等配置中心存储这些规则配置,这样在服务重启或者多个节点启动的时候可以共享配置数据。在之前的项目中,我们使用Nacos作为服务注册中心和服务配置中心。我们也可以使用Nacos作为Sentinel的配置数据存储仓库,为我们提供Sentinel配置数据的持久化。如下图添加Nacos存储依赖,需要独立引入如下依赖,声明哨兵规则数据存储在nacos中。com.alibaba.cspsentinel-datasource-nacos添加YML配置如果我们使用Sentinel的独立数据源功能,需要在yaml中文件声明数据源配置信息。spring:application:name:stock-serviceprofiles:active:devcloud:sentinel:transport:port:8719dashboard:localhost:8080enabled:truedatasource:ds:nacos:dataId:${spring.application.name}-flow-rulesgroupId:DEFAULT_GROUPdata-type:jsonrule‐type:flowNacos添加配置在nacas配置中心,我们需要添加规则配置并发布,这里需要注意dataId和groupId一定不能写错,否则会找不到数据配置,如图下图中:datatemplate[{"resource":"abc","controlBehavior":0,"count":20.0,"grade":1,"limitApp":"default","strategy":0}]最后我们启动服务和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