目錄
Spring Cloud Config分佈式配置中心
關於配置文件的小tip
application.yml是用戶級的資源配置項
bootstrap.yml是系統級的,優先級更加高
Spring Cloud會創建一個“Bootstrap Context”,作爲Spring應用的“Application Context”的父上下文。初始化的時候“Bootstrap Context”負責從外部源加載陪我之屬性並解析配置。這兩個上下文共享一個從外部獲取的“Environment”。Bootstrap屬於有高優先級,默認情況下,它們不會被本地配置覆蓋,“Bootstrap Context”和“Application Context”有着不同的約定,所以新增了
爲什麼會出現分佈式配置中心?
- 分佈式系統面臨的---配置問題
- 微服務意味着要將單體應用中的業務拆分成一個一個子服務,每個服務的粒度相對較小,因此係統中會出現大量的服務,由於每個服務都需要必要的配置信息才能運行,我們每一個微服務自己帶着一個application.yml,上百個配置文件的管理。。。。所以一套集中式的,動態的配置管理設施是必不可少的,SpringCLoud提供了ConfigServer來解決這個問題。
SpringCloud Config 是什麼?
- SpringCloud Config爲微服務架構中的微服務提供集中化的外部配置支持,配置服務器爲各個不同微服務應用的所有環境提供了一箇中心化的我i不配置。
怎麼玩?
-
SpringCloud Config分爲服務端和客戶端兩部分。
-
服務端也稱爲分佈式配置中心,它是一個獨立的微服務,用來連接配置服務器並未客戶端提供獲取配置信息,加密/解密信息等訪問接口
-
客戶端是通過指定的配置中心來管理應用資源,以及與業務相關的配置內容,並在啓動的時候從配置中心獲取和加載配置信息配置服務器採用git來存儲配置信息,這樣有助於對環境配置進行版本管理,並且可以通過git客戶端工具來方便的管理和訪問配置內容!
能幹嘛?
- 集中管理配置文件
- 不同環境不同配置,動態化的配置更新,分環境部署比如:dev/test/prod/beta/release
- 運行期間動態調整配置,不再需要在每個服務部署的機器上編寫配置文件,服務會向配置中心統一拉取自己的
- 當配置發生變動時,服務不需要重啓即可感知到配置的變化並應用新的配置
- 將配置信息以REST接口的形式暴露
與GitHub整合配置
- 由於SpringCloud默認使用Git來存儲配置文件(也有其他方式,比如支持SVN和本地文件,但最推薦的還是Git,而且使用的是http/https訪問的形式)
怎麼搭建
可參考文章:
3.半小時搭建Spring Cloud Config(本地配置中心或git配置中心)
4.史上最簡單的SpringCloud教程 | 第七篇: 高可用的分佈式配置中心(Spring Cloud Config)
5.SpringCloud之高可用的分佈式配置中心(Spring Cloud Config) |第十二章 -yellowcong