官方文档:https://nacos.io/zh-cn/docs/nacos-sync-use.html
https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-sync.html
步骤
首先安装java环境:
yum -y install java-1.8.0-openjdk-devel java

然后下载二进制包:https://github.com/nacos-group/nacos-sync/releases
下载后解压:
unzip nacos-sync.zip
创建数据库nacos_sync,默认使用的是mysql。表不用手动创建,默认使用了hibernate的自动建表功能。也可以使用bin/nacosSync.sql手动创建。

修改配置文件conf/application.properties中的数据库配置:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
启动nacos-sync
sh bin/startup.sh start
日志存放位置:nacos-sync/logs/nacos-sync-start.out。
可以通过修改conf/logback-spring.xml来修改日志级别:

当同步异常时,可以修改日志级别为DEBUG。
nacos添加namespace:

打开nacos_sync控制台,http://127.0.0.1:8083/
添加eureka和nacos集群:


添加同步:

一切正常的话在nacos的服务列表对应的namespace就能看到同步过来的服务。
查看同步服务详情:

坑
eureka地址
添加eureka集群时,eureka的地址必须添加/eureka,否则会获取不到服务。
nacos地址
添加eureka集群时,eureka的地址必须不能有/,否则nacos会报错:ERROR Servlet.service() for servlet [dispatcherServlet] in context with path [/nacos] threw exception org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String "//"
nacos-sync在拼接nacos地址时加了一个/,同步时触发Spring Security的防火墙拦截。
nacos页面不显示
同步成功了,nacos-sync和nacos上都没看到明显报错,但是nacos上不显示服务,但是调用api能获取到。

nacos中namespace和namespaceid是对应的:


解决方法就是删除namespace重建,然后让namespace和namespaceid保持一致。不让nacos自动生成。我的nacos版本是2.5.2,不知道是不是版本问题。