Spring Cloud版——電影售票系統<六>使用 Spring Cloud Config 統一管理微服務配置

GitHub地址:https://github.com/leebingbin/SpringCloud.MovieTicketinggit

 

1、 爲何要統一管理微服務配置

    在傳統的單體應用,常使用配置文件管理全部配置。好比,一個 Spring Boot 開發的單體應用,可將配置內容放在 application.yml 文件中。若是須要切換環境,可設置多個 Profile , 並在啓動應用時指定 spring.profiles.active={profile}。固然,也可藉助 Maven 的 Profile 實現環境切換。github

    在微服務架構中,微服務的配置管理通常有如下需求:spring

    * 集中管理配置。一個使用微服務架構的應用系統可能會包含成百上千個微服務,所以集中管理配置是很是有必要的。緩存

    * 不一樣環境不一樣配置。好比,最多見的數據源配置在不一樣的環境(開發、測試、預發佈、生產等)中是不一樣的。服務器

    * 運行期間可動態調整。好比,可根據各個微服務的負載狀況,動態調整數據源鏈接池大小或者熔斷閾值,而且在調整配置時不中止微服務。架構

    * 配置修改後可自動更新。如配置內容發生變化,微服務可以自動更新配置。app

    綜上,對於微服務架構而言,一個通用的配置管理機制是必不可少的,常見作法是使用配置服務器管理配置。分佈式

2、 Spring Cloud Config 簡介

    Spring Cloud Config 爲分佈式系統外部化配置提供了服務器端和客戶端的支持,它包括 Config Server 和 Config Client 兩部分。因爲 Config Server 和 Config Client 都實現了對 Spring Environment 和 PropertySource 抽象的映射,所以,Spring Cloud Config 很是適合 Spring 應用程序,固然也可與任何語言編寫的應用程序配合使用。微服務

    Config Server 是一個可橫向擴展、集中式的配置服務器,它用於集中管理應用程序各個環境下的配置,默認使用 Git 存儲配置內容(也可以使用 Subversion 、本地文件系統或 Vault 存儲配置),所以能夠很方便地實現對配置的版本控制與內容審計。性能

    Config Client 是 Config Server 的客戶端,用於操做存儲在 Config Server 中的配置屬性(以下圖-Spring Cloud Config 架構圖,全部的微服務都指向 Config Server)。各個微服務在啓動時,會請求 Config Server 以獲取所須要的配置屬性,而後緩存這些屬性以提升性能。

            

圖 - Spring Cloud Config 架構圖

 

 

 

 

 

 

 

 

 

 

 

參考資料:

    · Spring Cloud Config 的 GitHub 地址:https://github.com/spring-cloud/spring-cloud-config

 

 

 

本文爲博主原創文章,轉載請註明出處!

https://my.oschina.net/u/3375733/blog/

相關文章
相關標籤/搜索