Spring Cloud(九):配置中心Config

一、背景

隨着時間的推移,以往的單點部署項目,漸漸的轉變爲多點,分佈式集羣部署。接踵而來的是配置文件的凌亂部署,某一個基礎服務的配置變更,都將造成服務的重新部署。

二、概述

Spring Cloud Config爲分佈式系統中的外部配置提供服務器和客戶端支持。服務器存儲後端的默認實現使用git,因此它輕鬆支持標籤版本的配置環境,以及可以訪問用於管理內容的各種工具。很容易添加替代實現,並使用Spring配置將其插入。

三、特點

Spring Cloud Config就是雲端存儲配置信息的,它具有中心化,版本控制,支持動態更新,平臺獨立,語言獨立等特性。

其特點是:

a.提供服務端和客戶端支持

b.集中式管理分佈式環境下的應用配置

c.基於Spring環境,無縫與Spring應用集成

d.可用於任何語言開發的程序

e.默認實現基於git倉庫,可以進行版本管理

f.可替換自定義實現

四、理解、說明

4.1:服務端Server

拉取配置時,更新git倉庫副本,保證了最新的結果數據;

支持了數據結構豐富,yml、json、properties等;

配合Eureka可以實現服務的發現,配合Cloud Bus可以實現消息的推送更新;

配置可以基於SVN、GIT進行版本管理(本章只演示GIT版本工具)。

代碼演示:

spring:

cloud:

config:

server:

git:

uri: https://github.com/spring-cloud-samples/config-repo

4.2:客戶端Client

client我們只需要指明需要哪個配置文件即可,獲取資源方式格式如下:

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

/{application}-{profile}.yml

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

/{application}-{profile}.properties

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

解釋說明:
{application}映射到客戶端的“spring.application.name”;
{profile}映射到客戶端上的“spring.profiles.active”(逗號分隔列表);
{label}這是一個服務器端功能,標記“版本”的配置文件集。

五、案例

5.1:在gitHub上新增一個配置項

這裏寫圖片描述
5.2:配置Server端

結合Eureka做服務的發現與註冊

pom.xml配置如下:
這裏寫圖片描述

5.3:配置服務端文件properties

除了以往的服務註冊配置,還有遠程配置中心GitHub地址

服務註冊

這裏寫圖片描述
gitHub配置管理
這裏寫圖片描述

5.4:服務端啓動程序入口

這裏寫圖片描述
5.5:查看是否服務發現
這裏寫圖片描述

我們可以通過Server啓動的mapping映射也可以看出啓動的接口服務
這裏寫圖片描述

說明:
這些接口服務正是獲取資源格式類型。

接口訪問配置文件:
這裏寫圖片描述

5.6:客戶端配置
pom.xml
這裏寫圖片描述
服務註冊
這裏寫圖片描述
配置中心
這裏寫圖片描述
入口程序
這裏寫圖片描述
接口Controller
這裏寫圖片描述
說明:如下的啓動日誌我們可以看出,拉取了配置從配置服務端8888節點;也加載了遠程配置文件
啓動日誌

這裏寫圖片描述
Eureka服務發現註冊中心
這裏寫圖片描述
5.7:頁面訪問說明
接口訪問
這裏寫圖片描述
說明:通過接口訪問我們可以獲取遠程配置中心bar的值;那麼如果配置中心如果修改了bar的值域,我們將如何獲取最新的通知,是重啓服務,還是廣播通知呢?是的,我們引用Cloud生態圈的另一個組件Spring Cloud Bus消息總線機制獲取最新的值,盡請期待!

代碼地址:https://github.com/rubenYuan/Spring-Cloud-Samples
PPT:http://download.csdn.net/download/ruben95001/9974839

上一篇:Spring Cloud(八):服務轉發路由zuul

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章