【NacosSync】注册中心同步组件使用教程ZooKeeper迁移到Nacos

介绍

  • NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范,支持多种数据源存储,默认使用Hibernate实现,更加方便的支持表的自动创建更新
  • 使用了高效的事件异步驱动模型, 支持多种自定义事件,使得同步任务处理的延时控制在3s,8C16G的单机能够支持6K的同步任务
  • NacosSync除了单机部署,也提供了高可用的集群部署模式,NacosSync是无状态设计,将任务等状态数据迁移到了数据库,使得集群扩展非常方便
  • 抽象出了Sync组件核心接口,通过注解对同步类型进行区分,使得开发者可以很容易的根据自己需求,去扩展不同注册中心,目前已支持的同步类型:
    • Nacos数据同步到Nacos
    • Zookeeper数据同步到Nacos
    • Nacos数据同步到Zookeeper
    • Eureka数据同步到Nacos
    • Consul数据同步到Nacos

系统模块架构

在这里插入图片描述

获取安装包

有两种方式可以获得 NacosSync 的安装包

  • 直接下载 NacosSync 的二进制安装包:https://github.com/nacos-group/nacos-sync/releases
  • 0.4.8版本下载页面: https://github.com/nacos-group/nacos-sync/releases/tag/0.4.8
  • GitHub 上下载 NacosSync 的源码进行构建
    • git clone -b
    • cd nacosSync/
    • mvn clean package -U

    目标文件的路径: nacos-sync/nacossync-distribution/target/nacosSync.${version}.zip

数据库配置

#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nacos_sync?characterEncoding=utf8
spring.datasource.url=jdbc:postgresql://localhost:5432/nacos_sync
spring.datasource.username=nacos_sync
spring.datasource.password=nacos_sync

启动服务器

startup restart

控制台

访问路径: http://127.0.0.1:8083/

添加注册中心集群信息

  • 点击左侧导航栏中的“集群配置”按钮,新增加一个集群,先增加一个Zookeeper集群,选择集群类型为ZK。

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

  • 同样的步骤,增加NacosSync集群。
  • 添加完成后,可以在列表中查询到
    在这里插入图片描述

添加同步任务

  • 增加一个同步任务,从Zookeeper集群同步到Nacos集群,同步的粒度是服务,Zookeeper集群则称为源集群,Nacos集群称为目标集群。

  • 添加完成之后,可以在服务同步列表中,查看已添加的同步任务

  • 同步完成之后,检查下数据是否同步成功到Nacos集群,可以通过Nacos的控制台进行查询。

  • 此刻,数据已经成功从Zookeeper集群同步到了Nacos集群,部署结构如下
    在这里插入图片描述

  • 在升级Provider之前,你需要确保该Provider发布的服务,都已经配置在 NacosSync 中,同步的方式为从Nacos同步到Zookeeper,因为Provider升级连接到Nacos之后,需要确保老的Dubbo Consumer客户端能够在Zookeeper上订阅到该Provider的地址,现在,我们增加一个同步任务

    注意:Nacos服务同步到Zookeeper,不需要填写版本号,你在选择源集群的时候,版本号的输入框会自动隐藏掉。

  • 在升级的过程中,会有新老版本的客户端同时存在,部署结构如下
    在这里插入图片描述

  • 所有的客户端迁移完成之后,部署结构如下
    在这里插入图片描述

  • 现在,Zookeeper集群,NacosSync集群就可以下线了。

注意事项

  • 同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询。
  • NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可。
  • 如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步。
  • Dubbo 客户端目前不支持 Nacos 的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适。

猜你喜欢

转载自blog.csdn.net/friendlytkyj/article/details/131756279