今天要分析soul
网关中配置数据同步的另外一种方式,基于Nacos
的。
我们先简单的看下Nacos
是什么。
Nacos
-
附上从官网抠的一张图
- 大家感兴趣的可以移步至Nacos官网,能有更加准确以及详细的认知。
- docker安装nacos
-
nacos
安装完毕,进入正题。。。
使用
soul-admin
-
配置
- 启动后,我们发现没有什么特别的地方,
nacos
控制台上面也没有任何admin
的信息产生
soul-bootstrap
- 引入依赖
<!--soul data sync start use nacos-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-sync-data-nacos</artifactId>
<version>${project.version}</version>
</dependency>
-
配置
- 不幸,没有启动起来,报了如下错误
Caused by: java.lang.NullPointerException: null
at org.dromara.soul.sync.data.nacos.handler.NacosCacheHandler.updatePluginMap(NacosCacheHandler.java:90) ~[classes/:na]
at org.dromara.soul.sync.data.nacos.handler.NacosCacheHandler.watcherData(NacosCacheHandler.java:167) ~[classes/:na]
at org.dromara.soul.sync.data.nacos.NacosSyncDataService.start(NacosSyncDataService.java:56) ~[classes/:na]
at org.dromara.soul.sync.data.nacos.NacosSyncDataService.<init>(NacosSyncDataService.java:49) ~[classes/:na]
at org.dromara.soul.springboot.starter.sync.data.nacos.NacosSyncDataConfiguration.nacosSyncDataService(NacosSyncDataConfiguration.java:66) ~[classes/:na]
- 先解决该问题,重新拉一下官网仓库代码,这下又好了。看起来
soul
的nacos
同步功能就是最近开发的,还在迭代中 -
启动日志中有如下日志
- 再次看
nacos
控制台,nothing
- 有些不正常,进入
debug
,发现soul-bootstrap
实际上是能获取到soul-admin
上的配置数据的
- 于是再次到
nacos
控制台,发现有个【命名空间】的页面
- 还记得我们在配置
soul-admin
与soul-bootstrap
中的nacos
时,也配置了一个命名空间,怀疑这货是需要手动添加的,不能自动新增到nacos
的控制台 - 于是手动创建命名空间,将我们配置文件中的命名空间
1c10d748-af86-43b9-8265-75f487d20c6c
新增进去
-
命名空间如下
- 再次进入到【配置管理】->【配置列表】,并切换到
soul
空间,soul-admin
终于出现在nacos
控制台上面了
- 查看一条具体的配置
soul.plugin.json
- 我们去
soul-admin
端测试一下,配置的修改是否会同步到nacos
上 - 我们将
sentinel
插件置为开启
- 再次看
nacos
控制台,发现配置已修改
-
用版本比对查看更直观
- 没有我想象中的直观 ,要是能将
json
格式化一下,并且按field
排序展示更好了(>_<)
总结
关于使用这块就先到这里吧,主要就讲了下soul
如何应用nacos
去作为数据同步的机制,以及nacos
本身的一些介绍。下面再去分析nacos
配置数据同步的实现。