spring cloud config

一、什麼是spring cloud config    

    spring-cloud-config 簡單來說就是spring-cloud實現的分佈式配置中心.spring-cloud-config分爲服務與客戶兩端。git

    spring-cloud-config 使用git或者svn 甚至是本地的文件系統做爲配置文件的倉庫。   spring

    spring-cloud-config 用application,profile,label 三個維度來實現分佈式配置管理和發佈.json

  •   application  : 使用spring-cloud-config服務的客戶端名稱,每一個配置都是屬於某一個應用的
  •   profile :  每一個配置都是區分環境的,如dev, test, prod等
  •   lable  :  就是對同一份配置的不一樣版本管理。 若是使用的是git做爲配置管理的倉庫,label能夠是分支名,tag的名稱。也就是說對於一個應用的不一樣部署實例,能夠從服務端獲取到不一樣版本的配置,這對於一些特殊場景如:灰度發佈,A/B測試等提供了很好的支持。

二、使用spring cloud config的緣由

  • 基於應用、環境、版本三個維度管理,主要是版本的支持。
  • 配置存儲支持Git、SVN。開發人員都比較熟悉,不須要額外的學習成本。不管SVN或GIT都支持版本和權限管理。
  • 和Spring無縫集成。對全部spring應用程序遷移成本很是低,在配置的獲取上徹底一致。
  • 可用於任何語言開發的程序(客戶端)。
  • 提供服務端和客戶端支持。
  • 集中式管理分佈式環境下的應用配置。

三、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

四、spring cloud config client

  • 應用啓動後,獲取配置文件的順序:config server>本地。
  • 配置更新
    • GIT或SVN提交更改配置文件。
    • 手動refresh或 cloud bus 可實現配置推送更新或重啓config client,config client感知到配置更改。
    • Config Client從Config Server獲取到最新的配置,把最新的配置更新到環境中,而且更新已經注入的值。
  • 調用遠程配置的類須要標記@RefreshScope,保證同步更新配置。
相關文章
相關標籤/搜索