4.Config核心功能和原理

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

1.幫派組織架構(gòu)

image.png
  • 幫主:仍然是我們的Github服務(wù)器(后面會講到其他存放屬性文件的方式),存放所有的配置項信息
  • 傳功長老:Config組件,從Github那里獲取資源文件,并保存一份放到本地。
  • 小弟:眾多服務(wù)節(jié)點,從傳功長老那里獲取幫主的指令

2.Config Server的工作模式

Config Server主要有兩種工作模式:

效忠?guī)椭?/h5>

在這個模式下,Config Server只會從Github或者數(shù)據(jù)庫獲取配置信息

  • Github方案:如果Github是公共倉庫,那就不需要配置用戶名和密碼。如果是私有倉庫,要把登錄用的用戶名和密碼寫到配置文件里面,當然密碼可以通過加密方式存儲,然后系統(tǒng)啟動的時候使用密鑰進行解密
  • Database方案,需要額外指定spring.profiles.active=jdbc切換到db方案,并指定數(shù)據(jù)源
自立門戶

幫主?什么幫主?我就是幫主,Github被我一腳踢開,Config組件自己說了算,直接從本地路徑讀取資源文件

  • 采用這種方式,需要指定spring.profiles.active=native開啟功能,然后指定本地文件存儲路徑

為了簡化配置,我們的課程采用第一種模式管理配置文件,也就是Github公共倉庫。在項目配置中非常簡單,只用指定Github地址就可以,例如:

spring.cloud.config.server.git.uri=https://github.com/xxxxx/config-repo.git

在企業(yè)應用中,有時也會有多個項目共同使用一個Github repo的情況,這時候就需要將不同項目的資源文件放到不同目錄下,使用如下配置,給你的服務(wù)指定一個獨立的目錄存放配置文件

spring.cloud.config.server.git.search-paths=/{appName}

直連式方案的利弊

  • 優(yōu)點:從部署結(jié)構(gòu)上來講相當簡單,組件間依賴也少
  • 缺點:可用性不能得到保障,假如Config節(jié)點宕機會產(chǎn)生較大影響。由于需要將在客戶端啟動的時候指定Config地址,即便這里使用DNS地址(比如域名等非IP形式),如果域名發(fā)生變化仍然需要在客戶端重新配置Config地址。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。