Sentinel 规则配置,一旦我们重启服务过后,所有的规则都会消失。我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。
之前的项目我们通过 Nacos 来作为服务注册中心和服务配置中心,我们也可以将 Nacos 作为 Sentinel 的配置数据存储仓库,来为我们提供Sentinel 配置数据的持久化。 如下图所示
Nacos
microservice
Sentinel
dashboard
microservice
microservice
增加 Nacos 存储依赖
需要独立引入如下依赖,来申明 sentinel 的规则数据存储在 nacos 中。
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId></dependency>
添加 YML 配置
我们如果使用 Sentinel 的独立数据源功能,那么需要在 yaml 文件中申明数据源配置信息。
spring: application: name: stock-service profiles: active: dev cloud: sentinel: transport: port: 8719 dashboard: localhost:8080 enabled: true datasource: ds: nacos: dataId: ${spring.application.name}-flow-rules groupId: DEFAULT_GROUP data‐type: json rule‐type: flow
Nacos 增加配置
在 Nacas 配置中心,我们需要添加规则配置并且发布,这里需要注意 dataId 和 groupId 一定不要搞错,不然会导致找不到数据配置,如下图所示:
DataID:
stodK-service-flow-rules
DEFAULTGROUP
Group:
更多高级选项
描还:
默认不要勾选,
Beta发布:
TEXT
YAMLOHTML
XML
配置格式:
Properties
ISON
配百内容
51
"resource":"abc"
"controlBehavior:0,
"count":20.0,
"grade":1,
"limitapp":"default",
"strategy":0
J
"resource":"abc1",
"controlBehavior":0,
阳
"count":20.0,
"grade":1,
"limitapp":"default",
"stratergy":o
返回
发布
数据模板
[ { "resource": "abc", "controlBehavior": 0, "count": 20.0, "grade": 1, "limitApp": "default", "strategy": 0 }]
Sentinel 查看配置
最后我们启动服务和 Sentinel 控制台,就可以在流控信息这个菜单下面查看到我们在配置中心定义的流控信息。
搜索
应用名
新增流控规则
stock-service
首页
(1/1)
stock-service
流控规则
关健字
刚新
192.168.217.1:8720
实时监控
资诉名
来沃应用
闲值类型
楼作
试值
流控效果
流控模式
间值模式
危点链路
快速牙蚊
三接
锦辑
出涂
流控规则
20
单机
快速失收
OPS
点接
abe
源担
降级规则
1
快关败
单机
卓接
OPS
Thello
delauli
册除
海
热点规则
系统规则
条记录
共3条记录,每页10
授权规则
?群流控
机器列表
总结
至此我们就完成了,Sentinel 对规则持久化到 Nacos 的全部操作。这里有一个小小的问题就是我们在 Sentinel 控制台修改规则过后默认不能直接同步到 Nacos 中,如果需要同步到 Nacos 中的需要修改 Sentinel 控制台的源码,配置信息通过 “推模式”同步到 Nacos 中存储。