spring-cloud-config 多服務(wù)共享公共配置的解決方案總結(jié),太全了!

問(wèn)題描述

我們公司的項(xiàng)目是基于SpringCloud開(kāi)發(fā)的微服務(wù),用到了Spring-Cloud-Config作為微服務(wù)統(tǒng)一的配置中心,可以將散落在各個(gè)服務(wù)的配置進(jìn)行統(tǒng)一配置管理。

雖然配置中心將各個(gè)應(yīng)用的配置文件進(jìn)行了統(tǒng)一管理, 但是涉及到的一些公共配置,比如數(shù)據(jù)庫(kù)連接,redis連接,ftp連接等,依然還散落在各個(gè)應(yīng)用的配置文件中,并沒(méi)有抽取,我們需要根據(jù)環(huán)境的不同,而動(dòng)態(tài)修改它們,非常難以維護(hù)。導(dǎo)致每次涉及修改這些公共配置,就非常老火。

所以想到了利用公共文件方法,現(xiàn)在在這里簡(jiǎn)單闡述一下如何配置。(下面例子Spring-Cloud-Config-Server都是使用本地配置方式)。

經(jīng)過(guò)網(wǎng)上查閱資料,大部分都是采用方法一進(jìn)行配置的,那么我提供了一個(gè)方式二配置,也許會(huì)讓你眼前一亮,然后留下你的想法,如果是你去選擇,會(huì)選擇哪個(gè)方法呢?

方法一:

首先在配置中心的 config/ 目錄下創(chuàng)建一個(gè)公共配置文件common.yml, 然后在各個(gè)應(yīng)用下的 bootstrap.yml 文件中 spring.cloud.config.name 這里去配置多個(gè)配置文件名。

例如:

service-a 客戶(hù)端的 bootstap.yml:

spring:
  cloud:
    config:
      name: service-a, common

service-b 客戶(hù)端的 bootstap.yml:

spring:
  cloud:
    config:
      name: service-b, common

方法二:(比較推薦)

我們還記得springboot單體應(yīng)用的時(shí)候, 是如何抽離公共配置呢?答案是用spring.profiles.include 進(jìn)行引用其他公共配置文件。而且它的文件命名有個(gè)特點(diǎn),就是必須是application-開(kāi)頭的配置文件。
我們也會(huì)去想,像spring-cloud-config這樣的配置集中化,這樣的配置會(huì)生效嗎?

例如:

首先,我們?cè)?config/ 目錄下創(chuàng)建 application-common-dev.yml 配置文件

然后分別修改 service-aservice-bconfig/ 目錄下的配置文件,配置如下:

service-a 客戶(hù)端的 service-a-dev.yml

spring:
  application:
    name: service-a
  #公共配置文件
  profiles:
    include: common-dev

service-b 客戶(hù)端的 service-b-dev.yml

spring:
  application:
    name: service-b
  #公共配置文件
  profiles:
    include: common-dev

分別啟動(dòng)各自的服務(wù),就可以看到服務(wù)啟動(dòng)成功。

那么,這兩種方式那種更好一些呢。
方法一:
缺點(diǎn):如果有新加的公共配置文件,需要去每個(gè)服務(wù)的bootstrap.yml都去修改一下。并且需要重新發(fā)布jar包。

方法二:
優(yōu)點(diǎn):配置可以外部化,而且修改配置文件,不需要單獨(dú)發(fā)布jar包。

關(guān)注 + 收藏, 分享更多的開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容