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

? ? ??Spring Cloud?Config就是一個(gè)分布式配置中心解決方案。其采用集中式管理每個(gè)微服務(wù)的配置信息,并使用GIT等版本倉(cāng)庫(kù)統(tǒng)一存儲(chǔ)配置內(nèi)容,實(shí)現(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系列框架無(wú)縫結(jié)合
4.?可用于任何語(yǔ)言開發(fā)環(huán)境,基于Http協(xié)議。
5.?默認(rèn)基于GIT倉(cāng)庫(kù)實(shí)現(xiàn)版本控制。
三、總體架構(gòu)
本課程中以Gitee作為遠(yuǎn)程倉(cāng)庫(kù)。也可以使用其他git支持的遠(yuǎn)程倉(cāng)庫(kù)。

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

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

