Nacos-Sync同步Eureka服务到指定命名空间
默认情况下Nacos-Sync只能同步到public空间内, 但是某些时候我们需要同步到指定命名空间内, 此时只需做一些简单的修改即可满足.
首先下载源码
https://github.com/nacos-group/nacos-sync.git
之后切换到对应版本分支, 我用的是0.4.4的分支.
找到同步eureka的实现类EurekaSyncToNacosServiceImpl对应的方法sync(TaskDO taskDO)
EurekaNamingService eurekaNamingService = eurekaServerHolder.get(taskDO.getSourceClusterId(), null);
NamingService destNamingService = nacosServerHolder.get(taskDO.getDestClusterId(), null);
其中最后一个传null的参数就是name_space,将其改为以下代码然后重新打包即可
EurekaNamingService eurekaNamingService = eurekaServerHolder.get(taskDO.getSourceClusterId(), taskDO.getNameSpace());
NamingService destNamingService = nacosServerHolder.get(taskDO.getDestClusterId(), taskDO.getNameSpace());
taskDO对应task表. 在界面上创建完同步任务后回到数据库中直接将name_space字段改为对应命名空间id即可.
注意 该代码未经完整测试, 生产环境使用需谨慎.
附上已经打包好的jar
点击下载
, 将原nacosSync-server.jar备份后覆盖.
https://download.csdn.net/download/q412086027/15557967
版权声明:本文为q412086027原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。