首页 > 其他分享 >十四、Sentinel配置持久化到Nacos

十四、Sentinel配置持久化到Nacos

时间:2023-07-06 21:23:51浏览次数:42  
标签:流控 Nacos nacos 化到 sentinel 规则 Sentinel

Sentinel持久化配置

我们首先需要知道:在Sentinel Dashboard中配置规则之后重启应用就会丢失,所以实际生产环境中需要配置规则的持久化实现,Sentinel提供多种不同的数据源来持久化规则配置,包括file,redis、nacos、zk。

Sentinel规则持久化到Nacos

将限流规则持久化进Nacos保存,只要刷新8401某个接口地址,Sentinel控制台的流控规则就能感应到,同时只要Nacos里面的配置不删除,针对8401上Sentinel的流控规则就持续有效。

 

 

其实就是实现Sentinel Dashboard与Nacos之间的相互通信

通过Nacos配置文件修改流控规则---拉取--->Sentinel Dashboard界面显示最新的流控规则

注意:在Nacos控制台上修改流控制,虽然可以同步到Sentinel Dashboard,但是Nacos此时应该作为一个流控规则的持久化平台,所以正常操作过程应该是开发者在Sentinel Dashboard上修改流控规则后同步到Nacos,遗憾的是目前Sentinel Dashboard不支持该功能。

 

添加依赖:

    <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>sentinel-datasource-nacos</artifactId>
    </dependency>

在application.properties配置:

spring.cloud.sentinel.datasource.ds2.nacos.server-addr=127.0.0.1:8848
spring.cloud.sentinel.datasource.ds2.nacos.data-id=consumer-sentinel.json
spring.cloud.sentinel.datasource.ds2.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds2.nacos.data-type=json
# 规则类型:flow、degrade、param-flow、system、authority
spring.cloud.sentinel.datasource.ds2.nacos.rule-type=flow

 

在Nacos上新建配置:
 

 

Data Id为consumer-sentinel.json,必须带后缀。

[   
    {
        "resource": "HelloConsumer-hello",
        "limitApp": "default",
        "grade": 1,
        "count": 2,
        "strategy": 0,
        "controlBehavior": 0,
        "clusterMode": false
    }
]

resource:资源名称;
limitApp:来源应用;
grade:阈值类型,0表示线程数,1表示QPS;
count:单机阈值;
strategy:流控模式,0表示直接,1表示关联,2表示链路;
controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待;
clusterMode:是否集群。

 

重启后访问http://localhost:7001/consumer/hello?a=1,再访问Sentinel dashboard,看到流控规则中:
 

 

重启程序后流控规则还在。

标签:流控,Nacos,nacos,化到,sentinel,规则,Sentinel
From: https://www.cnblogs.com/shigongp/p/17533357.html

相关文章

  • 十三、@SentinelResource
    Sentinel提供了@SentinelResource注解用于定义资源,并提供了AspectJ的扩展用于自动定义资源、处理BlockException等。 @SentinelResource用于定义资源,并提供可选的异常处理和fallback配置项。@SentinelResource注解包含以下属性:value:资源名称,必需项(不能为空)en......
  • 那些神奇的转化到坐标或网格上的题目
    [AGC002E]CandyPiles[AGC015E]Mr.AokiIncubator......
  • 十二、Sentinel支持OpenFeign
    Sentinel要支持OpenFeign,只需要以下两个步骤:1、配置feign.sentinel.enabled=true2、添加依赖:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 在Produce......
  • 十一、Sentinel之系统规则
    Sentinel系统自适应保护从整体维度对应用入口流量进行控制,结合应用的Load、总体平均RT、入口QPS和线程数等几个维度的监控指标,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。一、背景在开始之前,先回顾一下Sentinel做......
  • 关于spring-cloud-starter-alibaba-nacos-discovery找不到,没有版本(pom爆红,找不到)
    #一,我这边发现每次项目都有经常发生这样的问题问题:这种问题说实话很弱智,但还是有类似于这种事情发生啊原因:1.在POM依赖没有版本的时候,可能原因是父工程或者父依赖中没有指定版本,所以在子工程中找不到版本(本次错误)2.还有就是父工程有版本,或者子工程也有版本的时候,此时就是本地......
  • maven 网关应用:[NACOS ConnectException httpPost] currentServerAddr: http://localh
    网关应用运行忽然报错:[NACOSConnectExceptionhttpPost]currentServerAddr:http://localhost:8848,虽然调整了代码逻辑,但是nacos的配置没有变更过,之前也还能正常跑,网上查了一些,有说是配置优先级的问题,说是Nacos默认的配置优先级最高,覆盖了本地了,但是我遇到的情况是虽然一直......
  • 【Spring Cloud Alibaba】Nacos 注册中心
    目录1.NacosServer的安装和启动1.解压以及目录说明2.修改配置文件3.Mysql表的导入4.NacosServer启动5.登录Nacos2.Nacos服务注册1.搭建两个nacos的客户端2.选择依赖3.修改配置文件4.修改启动类5.启动测试3.Nacos服务发现3.1DiscoveryClient3.2集成openfei......
  • 【Spring Cloud Alibaba】Nacos 配置中心
    目录1.Nacos配置中心快速入门1.1导入依赖1.2在Nacos中新建一个powernode的命名空间1.3NacosServer里面添加一个配置文件1.4项目中添加一个配置文件bootstrap.yml2.Nacos获取多配置文件3.NacosConfig常用的配置3.1Config常用配置3.2bootstrap.yml模板1.Naco......
  • nacos-sdk-go/v2版本 提示客户端连接不上
    nacos-sdk-gov2报错提示客户端连接不上标签(空格分隔):nacos前言nacos版本:v2nacos-sdk-go版本:v2背景:使用nacos-sdk-go来获取配置,发现一直在找缓存目录的文件,但使用openapi可以获取到配置报错信息clientnotconnected,currentstatus:STARTING提示客户端连接失败???1999-0......
  • SpringBoot SpringCloud Nacos等一些组件版本对应
    毕业版本依赖关系(推荐使用)由于SpringBoot2.4+和以下版本之间变化较大,目前企业级客户老项目相关SpringBoot版本仍停留在SpringBoot2.4以下,为了同时满足存量用户和新用户不同需求,社区以SpringBoot2.4为分界线,同时维护2.2.x和2021.x两个分支迭代。2021.x分支......