目錄
- 前言
- 1. 配置管理基礎知識
- 1.1 為什么需要配置管理
- 1.2 配置管理需要遵從的四個原則
- 1.3 配置在什么時候被讀取
- 1.4 配置管理的架構概念
- 1.5 配置管理有多種選擇
- 1.6 Spring Cloud 的三種組態檔(.xml .yml 與 .properties)
- 1.7 Spring Cloud 的兩類組態檔(application 與 boostrap)
- 1.8 目前幾種流行的配置中心對比
- 2. Spring Cloud Config
- 最后
前言
參考資料:
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服務原理與實戰》
《B站 尚硅谷 SpringCloud 框架開發教程 周陽》
將配置寫入一個 config 常量類往往會有些問題,每次對配置進行更改時,應用程式都必須重新編譯和重新部署;
在少量的應用程式中可以將配置寫在低層級的屬性檔案,如:YAML、JSON 或 XML;其中包含資料庫和中間件連接資訊,以及驅動應用程式行為的相關元資料;
但是在處理可能包含數百個微服務的基于云的應用程式,其中每個微服務可能會運行多個服務實體時,需要對配置進行集中管理;
1. 配置管理基礎知識
1.1 為什么需要配置管理
- 將配置寫入一個 config 常量類往往會有些問題,每次對配置進行更改時,應用程式都必須重新編譯和重新部署;
- 在少量的應用程式中可以將配置寫在低層級的屬性檔案,如:YAML、JSON 或 XML;其中包含資料庫和中間件連接資訊,以及驅動應用程式行為的相關元資料;
- 但是在處理可能包含數百個微服務的基于云的應用程式,其中每個微服務可能會運行多個服務實體時,需要對配置進行集中管理;
1.2 配置管理需要遵從的四個原則
- 分離:將服務配置資訊與服務的實際物理部署完全分開;
- 抽象:將訪問配置資料的功能抽象到一個服務介面;
- 集中:將應用程式配置集中在盡可能少的存盤庫中 ;
- 穩定:保證其高可用和冗余;
1.3 配置在什么時候被讀取

1.4 配置管理的架構概念

- 配置管理的連接資訊(連接憑據、服務端點等)將在微服務啟動時被傳遞給微服務;
- 配置管理的更改通常通過構建和部署管道來處理,其中配置的更改可以通過版本資訊進行標記,并通過不同的環境進行部署;
1.5 配置管理有多種選擇


1.6 Spring Cloud 的三種組態檔(.xml .yml 與 .properties)
-
.xml
- 一種可擴展標記語言;
- 用于標記電子檔案使其具有結構性的標記語言,可以用來標記資料、定義資料型別;
- 是一種允許用戶對自己的標記語言進行定義的源語言;
- 適合 Web 傳輸;
- 用于引入
pom依賴檔案;
-
.yml(下稱 yml)
- 一種比 XML 更為簡單易讀的序列化語言,更像是一種資料格式;
- 也稱 yaml,yml 檔案擴展名是 yaml 的縮寫;
- 以資料為中心,比 json、xml 等更適合做組態檔;
- 復雜配置建議用 yml,易讀性強;
- 支持的多種編程語言種類(支持python、go等大量編程語言);
- 支持中文內容;
- 支持串列;
- 優先加載,會被后加載的 properties 覆寫;
-
.properties(下稱 properties)
- 作用同 yml;
- 簡單配置用 properties;
- properties 支持中文內容只能用 unicode 編碼;
- 只支持鍵值對資料;
- 加載優先級低,會覆寫 yml 的內容;
1.7 Spring Cloud 的兩類組態檔(application 與 boostrap)
-
application.yml 或 application.properties(以下統稱:application)
- 主要用于 Spring Boot 專案的自動化配置;
- 是用戶級的資源配置項;
-
boostrap.yml 或 boostrap.properties(以下統稱:boostrap)
- 是系統級的,由父
ApplicationContext加載,加載優先于 application; - 主要用于從額外的資源來加載配置資訊;
- 可以在本地外部組態檔中解密屬性(用于加密/解密的場景);
- 默認不能被本地相同配置覆寫;
- bootstrap可以理解成系統級別的一些引數配置,這些引數一般是不會變動的;
- 使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap 組態檔中添加連接到配置中心的配置屬性來加載外部配置中心的配置資訊;
- 需要注意一個例外:若 bootstrap 里面配置了 server.port=8888,而 application 里面配置了 server.port=7777,事實上,專案啟動時的埠號是 7777(bootstrap不關心這個屬性);
- 是系統級的,由父
-
相同點:
- 共用一個環境,是任何 Spring 應用程式的外部來源;
1.8 目前幾種流行的配置中心對比
| 名稱 | 廠商 | 特點(優點) | 缺點 |
|---|---|---|---|
| Spring Cloud Config | 非分布式鍵值存盤;提供了對 Spring 和非 Spring 服務的緊密集成;可以使用多個后端來存盤配置資料 , 包括共享檔案系統、Eureka、Consul 和 Git 等 | ||
2. Spring Cloud Config
SpringCloud Config 為微服務架構中的微服務提供集中化的外部配置支持,配置服務器為各個不同微服務應用的所有環境提供了一個中心化的外部配置;
- 點擊跳轉:2.1 使用 Spring Cloud Config 管理服務配置項
最后

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/413138.html
標籤:其他
