跟我學Spring Cloud(Finchley版)-23-Spring Cloud Config高可用

前文構建的都是單節點的Config Server,本節來討論如何構建高可用的Config Server集羣,包括Config Server的高可用依賴Git倉庫的高可用以及RabbitMQ的高可用。html

先來討論Git倉庫的高可用。git

Git倉庫的高可用

因爲配置內容存儲在Git倉庫中,因此要想實現Config Server的高可用,必須有一個高可用的Git倉庫。有兩種方式能夠實現Git倉庫的高可用。spring

  • 使用第三方Git倉庫:這種方式很是簡單,可以使用例如GitHub、BitBucket、Gitee、Coding等提供的倉庫託管服務,這些服務自己就已實現了高可用。
  • 自建Git倉庫管理系統:使用第三方服務的方式雖然省去了不少煩惱,可是不少場景下,傾向於自建Git倉庫管理系統。此時就須要保證自建Git的高可用。

以 GitLab 爲例,讀者可參照官方文檔搭建高可用的 GitLab:架構

RabbitMQ的高可用

Spring Cloud Config使用Spring Cloud Bus實現配置批量刷新。而因爲Spring Cloud Bus依賴RabbitMQ(固然也可以使用其餘MQ,例如Kafka或者RocketMQ),因此RabbitMQ的高可用也是必不可少的。負載均衡

搭建高可用RabbitMQ的資料,讀者可詳見:https://www.rabbitmq.com/ha.html。因爲比較簡單,筆者不作贅述。固然,也可以使用雲平臺的提供的RabbitMQ服務。微服務

Config Server自身的高可用

本節來討論如何實現Config Server自身的高可用。筆者分兩種場景進行討論。gitlab

Config Server未註冊到Eureka Server上

對於這種狀況,Config Server的高可用可藉助一個負載均衡器來實現,如圖9-6所示。代理

Config Server高可用架構圖

如圖9-6,各個微服務將請求發送到負載均衡器,負載均衡器將請求轉發到其代理的其中一個Config Server節點。這樣,就能夠實現Config Server的高可用。htm

Config Server註冊到Eureka Server上

這種狀況下,Config Server的高可用相對簡單,只須將多個Config Server節點註冊到Eureka Server上,便可實現Config Server的高可用。架構如圖9-7所示。blog

Config Server高可用架構圖

本文首發

http://www.itmuch.com/spring-cloud/finchley-23/

乾貨分享

全是乾貨!

相關文章
相關標籤/搜索