天天看點

spring cloud config1、什麼是spring cloud config    2、使用spring cloud config的原因3、spring cloud config server4、spring cloud config client

1、什麼是spring cloud config    

    spring-cloud-config 簡單來講就是spring-cloud實作的分布式配置中心.spring-cloud-config分為服務與客戶兩端。

    spring-cloud-config 使用git或者svn 甚至是本地的檔案系統作為配置檔案的倉庫。   

    spring-cloud-config 用application,profile,label 三個次元來實作分布式配置管理和釋出.

  •   application  : 使用spring-cloud-config服務的用戶端名稱,每個配置都是屬于某一個應用的
  •   profile :  每個配置都是區分環境的,如dev, test, prod等
  •   lable  :  就是對同一份配置的不同版本管理。 如果使用的是git作為配置管理的倉庫,label可以是分支名,tag的名稱。也就是說對于一個應用的不同部署執行個體,可以從服務端擷取到不同版本的配置,這對于一些特殊場景如:灰階釋出,A/B測試等提供了很好的支援。

2、使用spring cloud config的原因

  • 基于應用、環境、版本三個次元管理,主要是版本的支援。
  • 配置存儲支援Git、SVN。開發人員都比較熟悉,不需要額外的學習成本。無論SVN或GIT都支援版本和權限管理。
  • 和Spring無縫內建。對所有spring應用程式遷移成本非常低,在配置的擷取上完全一緻。
  • 可用于任何語言開發的程式(用戶端)。
  • 提供服務端和用戶端支援。
  • 集中式管理分布式環境下的應用配置。

3、spring cloud config server

  • 拉取配置時更新 GIT或SVN 倉庫副本,保證是最新結果.
  • 支援資料結構豐富,yml, json, properties 等。
  • 配合 eureke 可實作服務發現,配合 cloud bus 可實作配置推送更新。
  • 配置存儲基于GIT或SVN倉庫,可進行版本管理。
  • 簡單可靠,可以實時檢視配置檔案的最新資料。
  • HTTP服務具有以下格式的資源:

    /{application}/{profile}[/{label}]

    /{application}-{profile}.yml

    /{label}/{application}-{profile}.yml

    /{application}-{profile}.properties

    /{label}/{application}-{profile}.properties

4、spring cloud config client

  • 應用啟動後,擷取配置檔案的順序:config server>本地。
  • 配置更新
    • GIT或SVN送出更改配置檔案。
    • 手動refresh或 cloud bus 可實作配置推送更新或重新開機config client,config client感覺到配置更改。
    • Config Client從Config Server擷取到最新的配置,把最新的配置更新到環境中,并且更新已經注入的值。
  • 調用遠端配置的類需要标記@RefreshScope,保證同步更新配置。