Nacos升级及数据迁移方案

#作者:stackofumbrella

文章目录

一、升级步骤

升级过程大致分为以下过程

1.在原有环境中,使用Nacos 2.4.x的新镜像,部署一套完整的三节点新集群,原有旧集群不动。

2.确保新集群可以通过控制台访问查看数据。

3.部署Nacos sync工具,这里需要注意的是一定要下载nacos sync 0.4.7版本,其他版本有bug导致迁移失败。

4.配置数据迁移通过控制台导出导入,实例数据通过nacos sync配置同步任务迁移。

二、Nacos sync的实现数据迁移样例

(一)项目地址

软件下载:https://github.com/nacos-group/nacos-sync/releases/download/0.4.7/nacosSync.0.4.7.tar.gz

官方文档:https://nacos.io/docs/v2/ecology/use-nacos-sync/#_top

(二)介绍

NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范,支持多种数据源存储,默认使用Hibernate实现,更加方便的支持表的自动创建更新。使用了高效的事件异步驱动模型,支持多种自定义事件,使得同步任务处理的延时控制在3s,8C16G的单机能够支持6K的同步任务。

NacosSync除了单机部署,也提供了高可用的集群部署模式,NacosSync是无状态设计,将任务等状态数据迁移到了数据库,使得集群扩展非常方便。抽象出了Sync组件核心接口,通过注解对同步类型进行区分,使得开发者可以很容易的根据自己需求去扩展不同注册中心,目前已支持的同步类型:

Nacos数据同步到Nacos

Zookeeper数据同步到Nacos

Nacos数据同步到Zookeeper

Eureka数据同步到Nacos

Consul数据同步到Nacos

(三)系统模块架构

(四)控制台

同步任务管理页面

注册中心同步页面

(五)部署样例

1.安装基础环境

操作系统支持:64位的Linux/Unix/Mac/Windows supported/Mac recommended

JDK:64bit JDK 11+

MySQL:5.7.+

下载二级制包:

https://github.com/nacos-group/nacos-sync/releases/download/0.4.7/nacos-sync-0.4.7.tar.gz

解压

$ tar -C ./ -xf nacos-sync-0.4.7.tar.gz

$ tree nacos-sync

2.初始化数据库

系统默认配置的数据库是mysql,也支持其他的关系型数据库。缺省的数据库名字为"nacos_Sync",数据库表不需要单独创建,默认使用了hibernate的自动建表功能,如果环境不支持自动建表,可以使用系统自带的sql脚本建表,脚本放在bin目录下,下面给出了建库建表命令

mysql> create database nacos_sync default character set utf8mb4 collate utf8mb4_general_ci;

mysql> use nacos_sync;

mysql> source /home/user/nacos-sync/bin/nacosSync.sql;

3.配置数据库

$ vim nacos-sync/conf/application.properties

4.启动服务

$ nacos-sync/bin/startup.sh start

$ ss -tnl | grep 8083

如果报错可以查看nacos-sync/logs/nacos-sync-start.out的日志文件排错

5.控制台访问

http://192.168.131.158:8083

6.同步配置

打开控制台的"集群配置"-->"新增集群"出现下面界面,填写集群名字,集群类型如NACOS集群,填写集群地址,如果是k8s部署的集群,填写svc暴露的nodePort即可

注意:集群名字可以自定义,但是一旦确认便不能被修改,否则基于此集群增加的任务,在NacosSync重启后将不会恢复成功。

无论是单向复制还是双向同步都需要配置两个集群的信息

7.创建迁移任务

迁移数据只需配置单向复制如A集群-->B集群同步任务即可,打开控制台页面的"同步任务"-->"新增任务",根据实际情况进行如图配置

点击确认后同步任务会自动执行同步

三、注意事项

1、迁移同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询;

2、NacosSync支持高可用集群模式部署,只需要把数据库配置成同一个即可;

3、Dubbo客户端目前不支持Nacos的权重功能,如果用到了权重功能,需要重新考虑一下方案是否合适。

4、Nacos sync控制台删除同步任务不影响已经完成的同步。

5、Nacos sync只能对实例数据迁移同步,不能同步服务配置数据,配置数据只能通过控制台导出导入迁移,或者在两个数据库之间使用数据表之间的同步。

6、本方案必须在测试环境中进行充分测试验证后,再实施到生产环境,严禁不经测试直接实施到生产环境中。

相关推荐
沉浮yu大海4 天前
基于SpringBoot3+Java17+Nacos的配置中心和本地配置文件加解密
java·spring cloud·nacos·java17
爱琴孩5 天前
nacos实现注册中心原理详解
nacos·注册中心·raft协议
UCoding6 天前
我们来学nacos -- 切换UAT,搭建集群nacos
nacos·nacos集群
全靠bug跑8 天前
Nacos 入门实战:部署、服务注册与发现全指南
java·spring cloud·docker·nacos
梵得儿SHI10 天前
SpringCloud - 核心组件精讲:Nacos 深度解析(服务注册 + 配置中心一站式实现)
java·spring boot·spring cloud·nacos·微服务架构的核心组件·服务注册发现与配置管理·nacos的核心原理与实战应用
刘一说15 天前
Nacos 权限控制详解:从开源版 v2.2+ 到企业级安全实践
spring boot·安全·spring cloud·微服务·nacos·架构·开源
kong790692822 天前
微服务项目开发环境
微服务·nacos·rabbitmq·开发环境
whltaoin25 天前
【 Java微服务 】Spring Cloud Alibaba :Nacos 注册中心与配置中心全攻略(含服务发现、负载均衡与动态配置)
java·微服务·nacos·springcloud·注册中心·配置中心
小坏讲微服务1 个月前
Spring Cloud Alibaba 2025.0.0 与 Nacos 3.1.0 集群整合
分布式·nacos·架构·springcloud·nacos集群·springalibaba