小工具知识网

当前位置: 首页 > 行业知识 > SpringCloud学习笔记 - Sentinel流控规则配置的持久化 - Sentinel

行业知识

SpringCloud学习笔记 - Sentinel流控规则配置的持久化 - Sentinel

2026-11-09 05:58:43 来源:互联网转载

1. 为什么要将流控规则持久化

默认���的流控规则是配置在sentinel中的,又因为sentinel是懒加载的,只有当我们访问了一个请求的时候,sentinel才能监控到我们的簇点链路,我们才能对该链路进行流控配置,一旦我们重启应用sentinel将会丢失我们的监控链路,sentinel规则也将会消失,这样对我们的生产服务器的重新部署是非常不友好的。

那么我们能不能将我们配置的流控规则保存在一个地方,让sentinel在任何时候只要需要就能获取到我们配置的流控规则呢?

2. 将流控规则持久化进nacos中

我们知道nacos中是内置了一个轻量化的数据库的,我们就可以将我们的流控规则通过一种方式配置在nacos中的,只要Nacos里面的配置不删除,sentinel上的流控规则就持续有效。

1. 引入sentinel的持久化依赖

    com.alibaba.csp    sentinel-datasource-nacos

2. 在nacos中创建某个微服务的流控配置规则

在nacos中新建流控规则配置文件:

[{    "resource": "customerBlockHandler",    "limitApp": "default",    "grade": 1,    "count": 1,     "strategy": 0,    "controlBehavior": 0,    "clusterMode": false}]

resource可以是请求的映射,也可以是在@SentinelResource中指定的value = "customerBlockHandler"名称

sentinel中的规则配置对照:

3. 在该微服务的application.yaml中添加nacos数据源配置信息

server:  port: 8401spring:  application:    name: cloudalibaba-sentinel-service  cloud:    nacos:      discovery:        server-addr: localhost:8848 #Nacos服务注册中心地址    sentinel:      transport:        dashboard: localhost:8080 #配置Sentinel dashboard地址        port: 8791 #默认端口      datasource:        ds1:          nacos:            server-addr: localhost:8848 #nacos的服务地址,根据实际情况而定            data-id: cloudalibaba-sentinel-service  #在nacos中新建的配置文件的名称            group-id: DEFAULT_GROUP #新建时分配的组别            data-type: json #配置文件的数据格式            rule-type: flow

关闭cloudalibaba-sentinel-service的服务后,sentinel中的流控规则消失,重启后会自动加载

上一篇:轻松掌握软件下载与安装步骤指南

下一篇:追业绩短信怎么发?