上一篇文章講述了一個服務如何從配置中心讀取檔案,配置中心如何從遠端git 或 本地讀取配置檔案,當服務例項很多時,都從配置中心讀取檔案,這時可以考慮將配置中心做成一個微服務,將其叢集化,從而達到高可用,架構圖如下:

一、準備工作

繼續使用前面文章的工程(註冊中心 leopard-eureka 、服務 leopard-service、配置中心 leopard-config)。

修改 leopard-service 的 bootstrap.properties 配置檔案

#服務名稱
spring.application.name=leopard-service

#指明遠端倉庫的分支
spring.cloud.config.label=master

#環境配置檔案 dev-開發 test-測試 pro-正式
spring.cloud.config.profile=dev

#指明配置服務中心的網址
#spring.cloud.config.uri= http://localhost:8881/


#是否從配置中心讀取檔案
spring.cloud.config.discovery.enabled=true

#配置中心的servieId,即服務名
spring.cloud.config.discovery.serviceId=leopard-config

這時發現,在讀取配置檔案不再寫ip地址,而是服務名,這時如果配置服務部署多份,通過負載均衡,從而高可用。(跟測試之前的 fegin 差不多)

二、執行測試

依次啟動leopard-eureka、leopard-config、leopard-service

訪問註冊中心:http://localhost:8761/

訪問服務:http://localhost:8081/test/getName

hi leopard,this name is :leopardName

說明不需要通過 IP:port 訪問配置中心,可以通過服務名訪問獲取資訊。

只要配置中心配置統一服務名,埠不同依舊可以訪問到配置,實現高可用。

 

文章轉載: https://blog.csdn.net/forezp/article/details/81041028