采用幫主-傳功長老-小弟的三層架構(gòu)。
1.幫派組織架構(gòu)

image.png
- 幫主:仍然是我們的Github服務(wù)器(后面會講到其他存放屬性文件的方式),存放所有的配置項(xiàng)信息
- 傳功長老:Config組件,從Github那里獲取資源文件,并保存一份放到本地。
- 小弟:眾多服務(wù)節(jié)點(diǎn),從傳功長老那里獲取幫主的指令
2.Config Server的工作模式
Config Server主要有兩種工作模式:
效忠?guī)椭?/h5>
在這個(gè)模式下,Config Server只會從Github或者數(shù)據(jù)庫獲取配置信息
- Github方案:如果Github是公共倉庫,那就不需要配置用戶名和密碼。如果是私有倉庫,要把登錄用的用戶名和密碼寫到配置文件里面,當(dāng)然密碼可以通過加密方式存儲,然后系統(tǒng)啟動(dòng)的時(shí)候使用密鑰進(jìn)行解密
- Database方案,需要額外指定spring.profiles.active=jdbc切換到db方案,并指定數(shù)據(jù)源
自立門戶
幫主?什么幫主?我就是幫主,Github被我一腳踢開,Config組件自己說了算,直接從本地路徑讀取資源文件
- 采用這種方式,需要指定spring.profiles.active=native開啟功能,然后指定本地文件存儲路徑
為了簡化配置,我們的課程采用第一種模式管理配置文件,也就是Github公共倉庫。在項(xiàng)目配置中非常簡單,只用指定Github地址就可以,例如:
spring.cloud.config.server.git.uri=https://github.com/xxxxx/config-repo.git
在企業(yè)應(yīng)用中,有時(shí)也會有多個(gè)項(xiàng)目共同使用一個(gè)Github repo的情況,這時(shí)候就需要將不同項(xiàng)目的資源文件放到不同目錄下,使用如下配置,給你的服務(wù)指定一個(gè)獨(dú)立的目錄存放配置文件
spring.cloud.config.server.git.search-paths=/{appName}
直連式方案的利弊
- 優(yōu)點(diǎn):從部署結(jié)構(gòu)上來講相當(dāng)簡單,組件間依賴也少
- 缺點(diǎn):可用性不能得到保障,假如Config節(jié)點(diǎn)宕機(jī)會產(chǎn)生較大影響。由于需要將在客戶端啟動(dòng)的時(shí)候指定Config地址,即便這里使用DNS地址(比如域名等非IP形式),如果域名發(fā)生變化仍然需要在客戶端重新配置Config地址。