sentinel笔记9- 限流规则持久化(上)

之前的在sentinel 控制台配置的规则,重启后就消失了,sentinel 限流保护-笔记-CSDN博客

本篇还是在之前的demo做验证,使用nacos做持久化。

规则集成Nacos

1 引入依赖

复制代码
        <!--nacos-discovery  注册中心依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- nacos-config 配置中心依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
         <!--以nacos作为sentinel数据源的依赖-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>

就是备注的:sentinel-datasource-nacos

2 修改配置文件:

可以在nacos对应的改,也在在工程的application.yml改。我贴一下sentinel相关的。

复制代码
sentinel:
      transport:
        port: 8719
        # 添加sentinel的控制台地址
        dashboard: tlmall-sentinel-dashboard:8888
      datasource:
        nacos:
          nacos:
            server-addr: localhost:8848
            data-id: tlmall-storage-flow-rules.json
            rule-type: flow
            group-id: DEFAULT_GROUP
            username: nacos
            password: nacos
  config:
    import:
      - optional:nacos:${spring.application.name}.yml
      - optional:nacos:db-common.yml    #数据库公共配置
      - nacos:nacos-discovery.yml
      - optional:nacos:seata-client.yml

3 nacos配置规则

注意,dataid跟上面配置信息保持一致。

参数的含义:

验证:

重启sentinel ,

也可以再用postman测试下效果,超过阈值的会被拦截。

小结:

nacos中的配置文件对于sentinel来讲是单项数据读入,sentinel能监听到nacos中配置的变化,但是我们在sentinel中修改了配置,nacos是不会监听到并进行修改。目前使用的版本1.8.6 只是配置下就这样了,不改代码做不到双向同步。

相关推荐
杨杨杨大侠7 小时前
都能接模型、RAG 和 MCP,Java Agent 框架到底差在哪?
java
Thinker QAQ8 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
霸道流氓气质9 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
AOI小白新手上路9 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库
dishugj11 小时前
系统架构风险点、敏感点和权衡点的概念和区分
java·开发语言
苜蓿muxu11 小时前
常用代码命名规范
java
马优晨11 小时前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
Baron X12 小时前
Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作
java·docker·eclipse·temurin
孙浩君12 小时前
我用 Spring Boot + xterm.js 写了个终端风格互动叙事游戏引擎:游戏即文件,上传一个 JSON 就能玩
java