sentinel持久化

sentinel 的持久化,我们希望这样:

  • 可以在 sentinel 控制台中编辑 限流配置,并且同步到 nacos 做持久化
  • 在 nacos 中修改了限流配置,也可以同步到 sentinel 控制台

要实现上述第一个功能需要对 sentinel 控制台的源码有所了解,并加依改造。

但 GitHub 上已经有人改造好了,做了个加强版 控制台。

GitHub - CHENZHENNAME/sentinel-dashboard-nacos: sentinel 控制台持久化到nacos 完成了限流、降级、系统、授权、热点规则、网关。保留了原始模式直接推送到客户端的内存中

  • 打开上述网址,克隆项目到本地
  • 打开根目录下的 pom.xml ,修改 sentinel 的版本

我的是 1.8.0

  • 进入项目根目录,cmd,执行命令 mvn clean package
  • 然后会生成一个 jar 包,这个 jar 包就是 sentinel 控制台
  • 执行命令,启动控制台:
java -Dserver.port=7777 -Dnacos.serverAddr=localhost:8848 -Dnacos.namespace=9f977da3-20cc-4162-904b-2324b9bf31f6 -jar sentinel-dashboard.jar

# -Dserver.port 控制台端口号
# -Dnacos.serverAddr: nacos 地址
# -Dnacos.namespace: 你项目所在的 nacos 命名空间

java 后端配置文件:(其实,除了 spring.application.name 以外,这些配置可以写在公共的配置文件)

spring:
  application:
    name: order-service
  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:7777
      datasource:
        ds1-flow: # 这个名字任意起
          nacos:
            server-addr: 127.0.0.1:8848
            data-id: ${spring.application.name}-flow-rules  # 和 nacos中保持对应
            username: nacos
            password: nacos
            namespace: 9f977da3-20cc-4162-904b-2324b9bf31f6  # 和nacos中保持对应
            group-id: SENTINEL_GROUP # 和nacos中保持对应
            # 规则类型:流控
            rule-type: flow
            # 对于 nacos 数据类型
            data-type: json
    nacos:
      # nacos 服务器地址
      server-addr: 127.0.0.1:8848
      discovery:
        username: nacos
        password: nacos
        namespace: 9f977da3-20cc-4162-904b-2324b9bf31f6

然后浏览器访问:http://localhost:7777 , 最开始什么都没有,然后访问你自己的项目的任意一个要限流的接口,则 左侧会出现对于的 服务名称

在这里插入图片描述

我们清空之前 nacos 配置的 流控规则,连配置文件也删掉,重新配置:

  • 点击 簇点链路,新增 一个流控规则:
    在这里插入图片描述

  • 注意,一定要点 带 2 的,只有带 2 的才能推送到 nacos,在 流控规则 选项中添加也不行,只能点击 蓝色方框 才能推送到 nacos

  • 在这里插入图片描述

 添加成功后,nacos 中,你指定的命名空间下会自动生成 ${application-name}-flow-rules 格式的配置文件

配置详情

当你在 sentinel 控制台中,无论增加规则,还是修改规则,都会同步到 nacos;相反,修改 nacos 中 配置文件的限流规则,也会同步到 sentinel 。

这样,当你的 服务停掉后,你的限流策略并不会消失,它被 nacos 持久化到了 MySQL 数据库。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值