解決spring-cloud-config 多服務共享公共配置的問題
問題描述
我們公司的項目是基于SpringCloud開發(fā)的微服務,用到了Spring-Cloud-Config作為微服務統(tǒng)一的配置中心,可以將散落在各個服務的配置進行統(tǒng)一配置管理。
雖然配置中心將各個應用的配置文件進行了統(tǒng)一管理, 但是涉及到的一些公共配置,比如數(shù)據(jù)庫連接,redis連接,ftp連接等,依然還散落在各個應用的配置文件中,并沒有抽取,我們需要根據(jù)環(huán)境的不同,而動態(tài)修改它們,非常難以維護。導致每次涉及修改這些公共配置,就非常老火。
所以想到了利用公共文件方法,現(xiàn)在在這里簡單闡述一下如何配置。(下面例子Spring-Cloud-Config-Server都是使用本地配置方式)。
經過網上查閱資料,大部分都是采用方法一進行配置的,那么我提供了一個方式二配置,也許會讓你眼前一亮,然后留下你的想法,如果是你去選擇,會選擇哪個方法呢?
方法一:
首先在配置中心的 config/
目錄下創(chuàng)建一個公共配置文件common.yml
, 然后在各個應用下的 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單體應用的時候, 是如何抽離公共配置呢?答案是用spring.profiles.include 進行引用其他公共配置文件。而且它的文件命名有個特點,就是必須是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
分別啟動各自的服務,就可以看到服務啟動成功。
那么,這兩種方式那種更好一些呢。
方法一:
缺點:如果有新加的公共配置文件,需要去每個服務的bootstrap.yml都去修改一下。并且需要重新發(fā)布jar包。
方法二:
優(yōu)點:配置可以外部化,而且修改配置文件,不需要單獨發(fā)布jar包。
到此這篇關于解決spring-cloud-config 多服務共享公共配置的問題的文章就介紹到這了,更多相關spring-cloud-config 公共配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mybatis-Plus同時使用邏輯刪除和唯一索引的問題及解決辦法(報數(shù)據(jù)重復Duplicate entry的
在開發(fā)中,我們經常會有邏輯刪除和唯一索引同時使用的情況,但當使用mybatis plus時,如果同時使用邏輯刪除和唯一索引,會報數(shù)據(jù)重復Duplicate entry的問題,如何解決這個問題呢,小編給大家分享Mybatis-Plus同時使用邏輯刪除和唯一索引的問題及解決辦法,一起看看吧2023-11-11如何在Java SpringBoot項目中配置動態(tài)數(shù)據(jù)源你知道嗎
這篇文章主要介紹了SpringBoot如何在運行時動態(tài)添加數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2021-09-09編碼實現(xiàn)從無序鏈表中移除重復項(C和JAVA實例)
如果不能使用臨時緩存,你怎么實現(xiàn)無序鏈表中移除重復項(?C和JAVA實例無序鏈表中移除重復項。2013-10-10Spring Boot系列教程之7步集成RabbitMQ的方法
RabbitMQ 即一個消息隊列,主要是用來實現(xiàn)應用程序的異步和解耦,同時也能起到消息緩沖,消息分發(fā)的作用。下面這篇文章主要給大家介紹了關于Spring Boot之7步集成RabbitMQ的相關資料,需要的朋友可以參考下2018-11-11SpringBoot+Thymeleaf實現(xiàn)生成PDF文檔
Thymeleaf是一個現(xiàn)代的服務器端?Java?模板引擎,適用于?Web?和獨立環(huán)境。Thymeleaf?的主要目標是為您的開發(fā)工作流程帶來優(yōu)雅的自然模板,本文就來用它實現(xiàn)生成PDF,感興趣的可以了解一下2022-09-09