解決spring-cloud-config 多服務(wù)共享公共配置的問題
問題描述
我們公司的項目是基于SpringCloud開發(fā)的微服務(wù),用到了Spring-Cloud-Config作為微服務(wù)統(tǒng)一的配置中心,可以將散落在各個服務(wù)的配置進(jìn)行統(tǒng)一配置管理。
雖然配置中心將各個應(yīng)用的配置文件進(jìn)行了統(tǒng)一管理, 但是涉及到的一些公共配置,比如數(shù)據(jù)庫連接,redis連接,ftp連接等,依然還散落在各個應(yīng)用的配置文件中,并沒有抽取,我們需要根據(jù)環(huán)境的不同,而動態(tài)修改它們,非常難以維護(hù)。導(dǎo)致每次涉及修改這些公共配置,就非常老火。
所以想到了利用公共文件方法,現(xiàn)在在這里簡單闡述一下如何配置。(下面例子Spring-Cloud-Config-Server都是使用本地配置方式)。
經(jīng)過網(wǎng)上查閱資料,大部分都是采用方法一進(jìn)行配置的,那么我提供了一個方式二配置,也許會讓你眼前一亮,然后留下你的想法,如果是你去選擇,會選擇哪個方法呢?
方法一:
首先在配置中心的 config/ 目錄下創(chuàng)建一個公共配置文件common.yml, 然后在各個應(yīng)用下的 bootstrap.yml 文件中 spring.cloud.config.name 這里去配置多個配置文件名。
例如:
service-a 客戶端的 bootstap.yml:
spring: cloud: config: name: service-a, common
service-b 客戶端的 bootstap.yml:
spring: cloud: config: name: service-b, common
方法二:(比較推薦)
我們還記得springboot單體應(yīng)用的時候, 是如何抽離公共配置呢?答案是用spring.profiles.include 進(jìn)行引用其他公共配置文件。而且它的文件命名有個特點,就是必須是application-開頭的配置文件。
我們也會去想,像spring-cloud-config這樣的配置集中化,這樣的配置會生效嗎?
例如:
首先,我們在 config/ 目錄下創(chuàng)建 application-common-dev.yml 配置文件
然后分別修改 service-a 和 service-b 在 config/ 目錄下的配置文件,配置如下:
service-a 客戶端的 service-a-dev.yml
spring: application: name: service-a #公共配置文件 profiles: include: common-dev
service-b 客戶端的 service-b-dev.yml
spring: application: name: service-b #公共配置文件 profiles: include: common-dev
分別啟動各自的服務(wù),就可以看到服務(wù)啟動成功。
那么,這兩種方式那種更好一些呢。
方法一:
缺點:如果有新加的公共配置文件,需要去每個服務(wù)的bootstrap.yml都去修改一下。并且需要重新發(fā)布jar包。
方法二:
優(yōu)點:配置可以外部化,而且修改配置文件,不需要單獨發(fā)布jar包。
到此這篇關(guān)于解決spring-cloud-config 多服務(wù)共享公共配置的問題的文章就介紹到這了,更多相關(guān)spring-cloud-config 公共配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Struts2學(xué)習(xí)教程之入門小白的開始基礎(chǔ)
struts2其實就是為我們封裝了servlet,簡化了jsp跳轉(zhuǎn)的復(fù)雜操作,并且提供了易于編寫的標(biāo)簽,可以快速開發(fā)view層的代碼。下面這篇文章主要給各位想要學(xué)習(xí)Struts2的小白們詳細(xì)介紹了關(guān)于Struts2入門的一些開始基礎(chǔ),需要的朋友可以參考下2018-04-04
使用log4j2打印mybatis的sql執(zhí)行日志方式
這篇文章主要介紹了使用log4j2打印mybatis的sql執(zhí)行日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
java開發(fā)實現(xiàn)訂閱到貨通知幫我們買到想買的東西
這篇文章主要為大家介紹了java開發(fā)實現(xiàn)訂閱到貨通知幫我們買到想買的東西示例demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
編寫Spring MVC控制器的14個技巧(小結(jié))
這篇文章主要介紹了編寫Spring MVC控制器的14個技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java中線程組ThreadGroup與線程池的區(qū)別及示例
這篇文章主要介紹了Java中線程組與線程池的區(qū)別及示例,ThreadGroup是用來管理一組線程的,可以控制線程的執(zhí)行,查看線程的執(zhí)行狀態(tài)等操作,方便對于一組線程的統(tǒng)一管理,需要的朋友可以參考下2023-05-05

