Spring Cloud Alibaba迁移指南1:零代码从Eu
本文探讨如何零代码将Eureka迁移到Nacos。
作者:得少,校对:周立。
Spring Cloud官方宣布Spring Cloud Netflix进入维护状态(详见Spring Cloud Netflix项目进入维护模式之我见 ),后续不再会有新的功能已成为事实。
作为开发者,如何使用极简的方式替换Netflix相关组件成为首要解决的问题。Spring Cloud Alibaba实现了Spring Cloud服务注册规范——这让开发者能够非常便利、无痛地将Eureka迁移到Nacos。
零代码使用 Nacos 替换 Eureka
如果你想使用 Spring Cloud Alibaba 的开源组件 spring-cloud-starter-alibaba-nacos-discovery替换 Eureka,只需完成以下几步!
-
安装 Nacos。Nacos 的安装非常简单,本文不做赘述,可参考 Nacos 官网 ,也可参考本博客近期更新的
Spring Cloud Alibaba系列博客
。 -
添加 Nacos的依赖,同时去掉 Eureka依赖。在需要替换的工程目录下找到pom.xml,添加如下依赖:
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>0.2.1.RELEASE</version> </dependency> </dependencies>
同时去掉依赖 spring-cloud-starter-netflix-eureka-client 。
-
修改application.properties。一些关于Nacos的配置也必须在application.properties(或application.yml)配置,如下所示: application.properties:
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
记得删除和 Eureka 相关的配置。
-
(可选) 更换EnableEurekaClient 注解。如果在你的应用启动程序启动类加了
@EnableEurekaClient
,需将其修改为@EnableDiscoveryClient
,或者索性删除。
启动你的应用即可,至此,你已实现 “零行代码使用 Nacos 替换 Eureka”!
完整方式可参考 Spring Cloud Alibaba的 Wiki 文档。
零代码使用 ANS 替换 Eureka
如果你想使用 Spring Cloud Alibaba 的商业化组件 spring-cloud-starter-alicloud-ans 替换 Eureka,也仅需完成如下几步。
-
安装轻量版配置中心。 轻量版配置中心的下载和启动方式可参考 配置轻量配置中心。
-
添加ANS的依赖,同时去掉 Eureka依赖。 在需要替换的工程目录下找到pom.xml。添加如下依赖:
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-ans</artifactId> <version>0.2.1.RELEASE</version> </dependency> </dependencies>
同时去掉依赖spring-cloud-starter-netflix-eureka-client 。
-
(可选) application.properties 配置。 一些关于 ANS的配置也可在application.properties(或application.yml)配置,如下所示:
spring.cloud.alicloud.ans.server-list=127.0.0.1 spring.cloud.alicloud.ans.server-port=8080
以上配置均为默认值,因此这一步是可选的。记得删除和Eureka相关的配置。
-
(可选) 更换EnableEurekaClient 注解。如果在你的应用启动程序启动类加了
@EnableEurekaClient
,需将其修改为@EnableDiscoveryClient
,或者索性删除。
启动你的应用即可,至此,你已实现 “零行代码使用 Nacos 替换 Eureka”!
完整的使用方式可参考 Spring Cloud Alibaba 的Wiki 文档 。