第六篇: 高可用的分散式配置中心(Spring Cloud Config)
阿新 • • 發佈:2018-11-19
上一篇文章講述了一個服務如何從配置中心讀取檔案,配置中心如何從遠端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 訪問配置中心,可以通過服務名訪問獲取資訊。
只要配置中心配置統一服務名,埠不同依舊可以訪問到配置,實現高可用。