天哪!Config分布式是什么? 它還可以這樣~
一、簡介:Config分布式配置中心
? ? ??在常規(guī)的開發(fā)中,每個微服務(wù)都包含代碼和配置。其配置包含服務(wù)配置、各類開關(guān)和業(yè)務(wù)配置。如果系統(tǒng)結(jié)構(gòu)中的微服務(wù)節(jié)點較少,那么常規(guī)的代碼+配置的開發(fā)方式足以解決問題。
? ? ? 當(dāng)系統(tǒng)逐步迭代,其微服務(wù)會越來越復(fù)雜,慢慢演化成網(wǎng)狀依賴結(jié)構(gòu),這個時候常規(guī)的代碼+配置的開發(fā)方式就并不合適了,因為還要考慮整體系統(tǒng)的擴展性、伸縮性和耦合性等。這些問題中,配置的管理也是非常麻煩的。
? ? ? 如果還是以常規(guī)開發(fā)形式管理配置,則要承擔(dān)反復(fù)修改編譯代碼、重啟系統(tǒng)、重新打包等風(fēng)險。所以,一個可以集中管理,帶有版本控制的配置中心應(yīng)運而生。

? ? ??Spring Cloud?Config就是一個分布式配置中心解決方案。其采用集中式管理每個微服務(wù)的配置信息,并使用GIT等版本倉庫統(tǒng)一存儲配置內(nèi)容,實現(xiàn)版本化管理控制。

二、Spring Cloud Config能做什么?
1、提供服務(wù)端和客戶端支持(spring cloud config server和spring cloud config client)
2.?集中式管理分布式環(huán)境中的配置信息(所有配置文件統(tǒng)一放在了gitee中)
3.?基于spring環(huán)境提供配置管理,與spring系列框架無縫結(jié)合
4.?可用于任何語言開發(fā)環(huán)境,基于Http協(xié)議。
5.?默認基于GIT倉庫實現(xiàn)版本控制。
三、總體架構(gòu)
本課程中以Gitee作為遠程倉庫。也可以使用其他git支持的遠程倉庫。

角色說明,在Spring Cloud Config中包含兩個角色:
Spring Cloud Config Server:負責(zé)接收Config Client請求,根據(jù)請求從GitEE中獲取到配置文件。
Spring Cloud Config Client:之前所寫的包含配置文件的項目都是Config Client。

?
Config實現(xiàn)分布式配置中心,主要實現(xiàn)需要以下幾個步驟:
1、配置文件可以在本地創(chuàng)建后使用git上傳。在學(xué)習(xí)過程中更加簡單的方式是直接在gitee中創(chuàng)建文件,編輯內(nèi)容。
2、Config Server主要的任務(wù)是從Git(遠程或本地倉庫)獲取到配置文件,Config Client通過REST獲取到配置文件的內(nèi)容。
3、Config Client對于Spring Cloud Config是客戶端,對于Eureka來說可以是Application Server 也可以是Application Client,新建項目ConfigClientDemo。
4、熱刷新指的是服務(wù)不重啟,不間斷對外提供服務(wù),而是重新加載配置內(nèi)容,初始化應(yīng)用環(huán)境。
5、在一個項目中把配置文件編寫完成后在提交到遠程git倉庫的話,大大減少出錯的概率,同時提升了開發(fā)效率。

