sentinel的持久化:
1:可以在 sentinel 控制台中编辑 限流配置,并且同步到 nacos 做持久化
2:在 nacos 中修改了限流配置,也可以同步到 sentinel 控制台要实现上述第一个功能需要对 sentinel 控制台的源码有所了解,并加依改造。
但 GitHub 上已经有人改造好了,做了个加强版 控制台。我们直接用就可以了
https://github.com/CHENZHENNAME/sentinel-dashboard-nacos
进入网站选择自己喜欢的方式下载就可以了
解压上面的软件
打开根目录下的 pom.xml ,修改 sentinel 的版本
我用的版本是1.8.1
进入项目根目录,cmd,执行命令 mvn clean package
会自己打包,打包好后会生产在target目录下
执行命令,启动控制台:
java -Dserver.port=8080 -Dnacos.serverAddr=localhost:8848 -jar sentinel-dashboard.jar
# -Dserver.port 控制台端口号
# -Dnacos.serverAddr: nacos 地址
# -Dnacos.namespace: 你项目所在的 nacos 命名空间 如果命名空间就是public可以省略该参数
放在sentinel界面
引入依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.8.1</version>
</dependency>
修改配置文件
# 接入道sentinel控制台
sentinel:
transport:
dashboard: localhost:8080 #sentinel控制台
datasource:
ds1-flow: # 随便起名
nacos:
server-addr: 127.0.0.1:8848
data-id: ${spring.application.name}-flow-rules # 和 nacos中保持对应
rule-type: flow
data-type: json
启动微服务
然后浏览器访问:http://localhost:8080 , 最开始什么都没有,然后访问你自己的项目的任意一个要限流的接口,则 左侧会出现对于的 服务名称
点击 簇点链路,新增 一个流控规则
注意,一定要点 带 2 的,只有带 2 的才能推送到 nacos,在 流控规则 选项中添加也不行,只能点击 红色方框 才能推送到 nacos
添加成功后,nacos 中,你指定的命名空间下会自动生成 ${application-name}-flow-rules
格式的配置文件
可以测试一下点击编辑:修改一下看一下 ,修改红色方框中的数字,看sentinel,
当你在 sentinel 控制台中,无论增加规则,还是修改规则,都会同步到 nacos;相反,修改 nacos 中 配置文件的限流规则,也会同步到 sentinel