自 Spring Cloud 官方宣佈 Spring Cloud Netflix 進入維護狀態後,我們開始製作《Spring Cloud Alibaba遷移指南》系列文章,向開發者提供更多的技術選型方案,並降低遷移過程中的技術難度。
第二篇,Spring Cloud Alibaba 實現了 Spring Cloud 服務註冊的標準規範,這就天然的給開發者提供了一種非常便利的方式將服務註冊中心的 Eureka 遷移到開源的 Nacos 。
第一篇回顧:一行程式碼從 Hystrix 遷移到 Sentinel
零程式碼使用 Nacos 替換 Eureka
如果你需要使用 Spring Cloud Alibaba 的開源元件 __spring-cloud-starter-alibaba-nacos-discovery__ 來替換 Eureka。需要完成以下幾個簡單的步驟即可。
- __本地需要安裝 Nacos。__Nacos 的安裝方式也是極其的簡單,參考 Nacos 官網。假設現在已經正常啟動了 Nacos 。
-
__新增 Nacos 的 pom 依賴,同時去掉 Eureka。__ 在需要替換的工程目錄下找到 maven 的配置檔案 pom.xml。新增如下的 pom 依賴:
<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__ pom 給去掉。 複製程式碼
-
__application.properties 配置。__ 一些關於 Nacos 基本的配置也必須在 application.properties(也可以是application.yaml)配置,如下所示: application.properties:
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848複製程式碼
同時將和 Eureka 相關的配置刪除。複製程式碼
- (可選) 更換 EnableEurekaClient 註解。 如果在你的應用啟動程式類加了 EnableEurekaClient 註解,這個時候需要更符合 Spring Cloud 規範的一個註解 EnableDiscoveryClient 。
直接啟動你的應用即可。到目前為止,就已經完成了 “零行程式碼使用 Nacos 替換 Eureka”。
完整的方式可參考 Spring Cloud Alibaba 的官方 Wiki 文件。
零程式碼使用 ANS 替換 Eureka
如果你需要使用 Spring Cloud Alibaba 的商業化元件 __spring-cloud-starter-alicloud-ans__ 來替換 Eureka。也是僅需完成以下幾個簡單的步驟即可。
- __本地需要安裝 輕量版配置中心。__ 輕量版配置中心的下載和啟動方式可參考 這裡。假設現在已經正常啟動了輕量版配置中心 。
-
__新增 ANS 的 pom 依賴,同時去掉 Eureka。__ 在需要替換的工程目錄下找到 maven 的配置檔案 pom.xml。新增如下的 pom 依賴:
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-ans</artifactId> <version>0.2.1.RELEASE</version> </dependency> </dependencies>複製程式碼
同時將依賴的 __org.springframework.cloud:spring-cloud-starter-netflix-eureka-client__ pom 給去掉。 複製程式碼
-
__(可選) application.properties 配置。__ 一些關於 ANS 基本的配置也可以在 application.properties(也可以是application.yaml)配置,如下所示: application.properties:
spring.cloud.alicloud.ans.server-list=127.0.0.1 spring.cloud.alicloud.ans.server-port=8080複製程式碼
如果不配置的話,預設值就是 __127.0.0.1__ 和 __8080__ ,因此這一步是可選的。同時將和 Eureka 相關的配置刪除。複製程式碼
- (可選) 更換 EnableEurekaClient 註解。 如果在你的應用啟動程式類加了 EnableEurekaClient 註解,這個時候需要更符合 Spring Cloud 規範的一個註解 EnableDiscoveryClient 。
程式碼層面不需要改動任何程式碼,直接啟動你的應用即可。到目前為止,就已經完成了 “零程式碼使用 ANS 替換 Eureka”。
完整的使用方式可參考 Spring Cloud Alibaba 的官方 Wiki 文件。
閱讀原文:yq.aliyun.com/articles/69…