MSE Nacos Sync迁移方案
本文介绍基于Nacos Sync 注册中心的迁移方案。
迁移方案简介
Nacos sync 是一个支持多种注册中心的同步组件,目前支持Nacos 和Zookeeper 注册中心 的双向同步,另外还支持Eureka 和Consul数据同步到Nacos。
迁移工具介绍
在迁移过程中,Nacos sync能够将源集群上的服务信息同步到目标集群实例上,从而实现配置中心之间的平滑迁移。
Nacos Sync 本身是无状态的,将任务等状态数据保存在数据库中,所以水平扩展非常方便。Nacos Sync 通过定时任务补偿机制处理宕机节点未处理完毕的任务数据。注册配置中心实例已经内置同步工具,无需用户额外安装,迁移方法可以参考章节:迁移上云。
Nacos Sync适配Zookeeper、Nacos和Eureka 的服务注册逻辑,能够实现从Zookeeper、Nacos和Eureka 自动获取服务,一键同步,操作非常简单。
支持的注册中心类型
源注册中心 | 目标注册中心 | 说明 |
---|---|---|
Nacos | Nacos | Nacos原生服务类型。 |
Zookeeper | Nacos | 基于Curator实现的服务发现功能和Dubbo服务。 |
Zookeeper | Zookeeper | 服务和配置。 |
Eureka | Nacos | Eureka原生服务类型。Eureka原生服务名为大写,但Nacos Sync会将服务名名转换成小写。 |
从Dubbo Nacos迁移到MSE
本文介绍如何从Dubbo+Nacos 迁移服务到MSE。
前提条件
- 已经创建Nacos 实例。
使用限制
- 源注册中心、目标注册中心二者之间必须保障网络互通。
迁移步骤
迁移步骤请参考章节:迁移上云。
验证同步结果
- 登录微服务引擎MSE注册配置中心管理控制台,选择资源池。
- 在左侧导航栏,选择注册配置中心 > 实例列表。
- 在实例列表页面,单击目标实例ID、实例名称或者目标行管理按钮均可跳转至实例基础信息页面。
- 在基础信息页面,点击服务管理> 服务列表,选择命名空间,查看当前Nacos注册的服务列表。确认选择的服务是否同步成功。
迁移Dubbo客户端
- 修改Dubbo客户端的XML配置文件,将dubbo:registry address中的源Nacos的访问地址,替换为目标Nacos的访问地址,替换Nacos用户名和密码。
- 重启客户端,此时Dubbo客户端连接的就是目标Nacos实例。
- 此时源Nacos集群就可以关闭了。
到此,即实现了从源注册中心到目标注册中心的平滑迁移。
从Dubbo ZooKeeper迁移到 MSE ZooKeeper
本文迁移指导适用于使用ZooKeeper作为Dubbo的注册中心需要迁移到MSE ZooKeeper的场景。迁移功能是利用ZooKeeper的快照(Snapshot)进行数据的迁移。
前提条件:
已创建MSE ZooKeeper集群。具体操作,请参考创建ZooKeeper引擎。
使用限制:
- 迁移前确保源ZooKeeper停止同步服务,并且有生成最新的快照文件。
- 该方式不支持同步分布式锁、临时节点数据。
迁移步骤:
步骤一:导出源ZooKeeper快照。
- 在源ZooKeeper部署机器上,查看zoo.cfg配置文件,获取dataDir配置目录。
- 进入dataDir目录后,进入version-2/目录找到最新的快照文件进行下载保存。
- 在MSE ZooKeeper实例详情页面中,进入数据管理->Znode管理->点击数据导入。
- 点击上传文件,选中刚刚下载保存的快照文件,点击确定,等待集群重启完毕即可,预计需要等待2-5分钟。
- 验证数据迁移结果,可以在数据管理-Znode管理中查看相应的节点验证数据。
- 迁移Dubbo客户端,找到Dubbo客户端的配置文件,将Dubbo客户端的Endpoint替换为MSE ZooKeeper的Endpoint。修改示例如下:
dubbo.registry.address=zookeeper://xxx.xx.xx.x:port