Eureka 迁移方案

服务迁移

原理说明

北极星对Eureka的API进行了全兼容,因此,业务可以把北极星集群作为一个Eureka节点,加入到Eureka原来的集群中,基于Eureka原生的同步协议进行新老注册中心的服务数据双向同步。

Eureka 迁移方案 - 图1

在这种迁移模式下, 用户可逐渐、分批次的将老集群中的eureka升级成北极星,升级过程对数据面不感知。新应用(使用Spring Cloud Tencent或其他北极星客户端),和存量应用(仍然使用Spring Cloud Netflix或者其他Eureka客户端),都可以接入到北极星完成注册发现,无需代码修改。

启动迁移

*** 安装北极星集群版 ***

需要先安装北极星集群版,可参考 集群版安装

*** 迁移相关的参数说明 ***

北极星通过eureka-apiserver实现了与开源标准eureka接口全兼容,用户如果对eureka进行了一些定制,需要手动调整eurekaeureka-apiserver的相关参数。

所有的eureka相关的参数都在polaris.yaml中,在apiservers.option下面进行配置:

参数名含义示例
listenIPeureka兼容的服务端监听IP0.0.0.0
listenPorteureka兼容的服务端监听端口8761
namespace通过eureka接口注册及发现的服务节点的命名空间,由于eureka本身没有命名空间的概念,所以针对eureka的服务管理操作必须在北极星某个命名空间下进行default
refreshInterval全量服务实例缓存的刷新间隔,单位秒10
deltaExpireInterval增量实例缓存的刷新间隔,单位秒60
peersToReplicate需要进行复制的对端eureka服务端节点列表- 9.15.15.5:8761
customValues自定义配置,用户如果对eureka服务端进行了定制并影响了参数,则可以把相关的参数填上,比如定制了dataCenterInfo,则可以将新的dci信息填入,北极星服务端会按照配置的信息进行下发见” 定制dataCenterInfo”

*** 往北极星服务端添加eureka地址 ***

  • 进入北极星集群中的其中一个节点,找到polaris.yaml配置文件,在apiservers.service-eureka.option下面,添加eureka服务端地址信息,用于做数据复制:
  1. apiservers:
  2. - name: service-eureka
  3. option:
  4. ... // 其他配置
  5. peersToReplicate: // eureka服务端节点的地址列表
  6. - <eureka1 IP>:<eureka1 port>
  7. - <eureka2 IP>:<eureka2 port>
  • 重启北极星服务端。

*** 往eureka服务端添加北极星服务端地址 ***

  • 修改eureka服务端的配置,将北极星其中一个节点的地址,加入到原有的eureka集群中。
  1. eureka:
  2. client:
  3. serviceUrl:
  4. defaultZone: http://<北极星服务端IP>:8761/eureka/
  • 重启Eureka服务端。

*** 定制dataCenterInfo ***

如果用户对eureka-server进行了定制,比如定制了<dataCenterInfo class="com.netflix.appinfo.AmazonInfo">,那么可以在北极星把这个配置项加入,即可下发带有定制后的DCI相关的服务数据。

  1. apiservers:
  2. - name: service-eureka
  3. option:
  4. ... // 其他配置
  5. customValues:
  6. dataCenterInfoClass: "com.netflix.appinfo.AmazonInfo"
  7. dataCenterInfoName: "myOwn"

迁移完成

配置好迁移后,可以在北极星控制台能同时查看到注册在eureka的实例,以及注册到北极星的实例,相互之间可以正常访问。

从eureka同步到北极星的服务实例,会打入internal-eureka-replicate:true的标签。

Eureka 迁移方案 - 图2

  • ←上一篇
  • 下一篇→