1.背景
Nacos与Eureka相比,Nacos的优点非常明显,当然首选Nacos作为注册中心。本文主要介绍如何从Eureka无缝平滑迁移到Nacos注册中心,业务方应用改动最小,业务应用改造一次完成迁移。
2.方案设计
2.1 业务应用多注册到Nacos和Eureka
Spring Cloud应用默认不支持启动时双向注册,但是阿里商业版上云edas-sc-migration-starter组件支持。可以采用如下的方式引入依赖实现多注册和订阅。
com.alibaba.edas
edas-sc-migration-starter
1.0.2
也就是引入对应的组件,当应用启动的时候同时向Eureka和Nacos实现双向注册。更多的实现细节和使用细节本文将不进行展开。
如上图所示,如果只把旧应用只改一部分,会出现只有改造的应用能调到新应用。未改造的应用会出现调不到新应用的情况。即,需要如下图所示的方式,旧应用全部升级改造为双注册到注册中心,才可以支持。
但是旧应用无法保证同一时刻全部升级改造为同时注册,因此该方案论证失败。
2.2 Nacos Sync方案
Nacos Sync 是一个支持多种注册中心的同步组件,基于 SpringBoot 开发框架,数据层采用 Spring Data JPA,遵循了标准的 JPA 访问规范,支持多种数据源存储,默认使用 Hibernate 实现,更加方便的支持表的自动创建更新。但目前最新版本是如下图所示。