今天要分析soul网关中配置数据同步的另外一种方式,基于Nacos的。
我们先简单的看下Nacos是什么。
Nacos
-
附上从官网抠的一张图
Nacos introduce
- 大家感兴趣的可以移步至Nacos官网,能有更加准确以及详细的认知。
- docker安装nacos
-
nacos安装完毕,进入正题。。。
使用
soul-admin
-
配置
admin.applicaiton.sync-nacos
- 启动后,我们发现没有什么特别的地方,
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>
-
配置
bootstrap.applicaiton.sync-nacos
- 不幸,没有启动起来,报了如下错误
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同步功能就是最近开发的,还在迭代中 -
启动日志中有如下日志
sync-data-nacos
- 再次看
nacos控制台,nothing - 有些不正常,进入
debug,发现soul-bootstrap实际上是能获取到soul-admin上的配置数据的
debug-nacos-configInfo
- 于是再次到
nacos控制台,发现有个【命名空间】的页面
nacos-console
- 还记得我们在配置
soul-admin与soul-bootstrap中的nacos时,也配置了一个命名空间,怀疑这货是需要手动添加的,不能自动新增到nacos的控制台 - 于是手动创建命名空间,将我们配置文件中的命名空间
1c10d748-af86-43b9-8265-75f487d20c6c新增进去
nacos-namespace-add
-
命名空间如下
nacos-namespace
- 再次进入到【配置管理】->【配置列表】,并切换到
soul空间,soul-admin终于出现在nacos控制台上面了
nacos-soul-config
- 查看一条具体的配置
soul.plugin.json
nacos-soul.plugin.json
- 我们去
soul-admin端测试一下,配置的修改是否会同步到nacos上 - 我们将
sentinel插件置为开启
soul-admin.plugin.sentinel.open
- 再次看
nacos控制台,发现配置已修改
nacos.plugin.sentinel.open
-
用版本比对查看更直观
nacos.config.versionCompare
- 没有我想象中的直观 ,要是能将
json格式化一下,并且按field排序展示更好了(>_<)
总结
关于使用这块就先到这里吧,主要就讲了下soul如何应用nacos去作为数据同步的机制,以及nacos本身的一些介绍。下面再去分析nacos配置数据同步的实现。











网友评论