Spring cloud config 的概念及應用
Spring cloud Config是提供統一管理配置,進行配置的集中管理;把不同的環境進行不同的配置,比如開發、測試、演示、生產環境進行單獨配置和管理,全球維護;也提供執行期間動態調整配置,比如說每天的流量較大,就需要把配置調整大一些;可以提供自動重新整理,就是配置完成之後,就可以直接生效,當然,這些功能Zookeeper也可以提供。
Spring cloud Config 為分散式系統外部化配置提供了伺服器端與客戶端的支援,它包括Config Server 和Config Client兩部分,由於Spring Server 和Config Client都實現了對Spring Environment和PropertySource抽象的對映,因此,Spring Cloud Config非常適合Spring應用程式,當然也可以與任何語言編寫的應用程式配合實用。
Config Server是一個橫向擴充套件、集中式的配置伺服器,它用於集中管理應用程式各個環境下的配置,預設使用Git儲存配置內容(也可以使用Subversion,本地檔案系統或Vault儲存配置),因此可以很方便地實現對配置的版本控制和內容審計。
Config Client是Config Server的客戶端,用於操作儲存在Config Server中的配置屬性。
Spring Cloud Confg 架構圖:
1、對於Config Server如何訪問
Config Server訪問是這樣規定的:
說明:lable是指GIt中的版本,預設是master
application是應用的名字,是你配置的server.application.name
profile是定義的高可用的時候指定的名字,其實也是高可用的伺服器的名字。
2、Config server配置檔案載入順序
首先載入bootstrap.*裡面的配置,然後再連結Config Server,然後載入遠端配置(Git倉庫的配置),最後載入Application.*的配置
3、Spring Cloud Config加解密
首先從Oracle官網中下載JCE裡面還有兩個Lib包,然後覆蓋JDK中安全包,如下圖:
然後在SpringBoot工程application.yml中加入這個encrypt.key: foo,其中foo是加密引子。
對於加密的密文要這樣存放在YML檔案中如下圖;
注意:用Properties屬性檔案時,密文是不帶有引號的。
注意:對於使用YML時,密文需要加引號
4、Spring Cloud Config配置自動更新
Spring cloud Config要與RabbitMq 或者Kafka一塊工作,才能使用配置自動 更新。
RbbitMq是採用Erlang開發的一個款訊息佇列。所以安裝RabbitMq之前需要先安裝ERLang的二進位制安裝程式。