本文介绍sentinel配置数据的持久化方法。由于sentinel官方并没有提供持久化功能,大家在测试过程中也能发现sentinel服务重启后,原来配置的数据就丢了,本文就是来处理这一问题的。
做好心理准备,我们要修改sentinel的源代码,是不是感觉高大上。
0、环境
- jdk 1.8
- sentinel 1.8.2
- nacos 2.0.3
- mysql 8.0.29
1、sentinel源码下载
点击链接:sentinel源码下载。
2、修改sentinel源代码
下载完成后,解压源代码,找到sentinel-dashboard目录,再用idea(你可以用任何你喜欢的工具)打开,等待maven下载依赖完成。完成后,按以下步骤开始改造:
2.1、修改pom.xml依赖
找到sentinel-datasource-nacos,注释掉test scope,如下代码:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<!--便于与nacos集成,注释掉test期
<scope>test</scope> -->
</dependency>
2.2、复制nacos包
打开sentinel-dashboard项目下的test目录,找到com.alibaba.csp.sentinel.dashboard.rule.nacos包,复制这个包,复制到main目录下,包名和测试目录保持一致。复制完成后,如下图:
2.3、修改NacosConfig
如上图,打开NacosConfig类,找到nacosConfigService(), 按以下代码修改: