摘要:默認(rèn)使用存儲(chǔ)配置內(nèi)容也可以使用本地文件系統(tǒng)或存儲(chǔ)配置。會(huì)在微服務(wù)啟動(dòng)時(shí),請(qǐng)求以獲取所需要的配置屬性,并且緩存在本地以提高性能。
簡(jiǎn)介
對(duì)于傳統(tǒng)的單體應(yīng)用,通常是使用配置文件來(lái)管理所有的配置,但是在微服務(wù)架構(gòu)中,會(huì)存在很多的微服務(wù),如果每一個(gè)微服務(wù)都維護(hù)自己的配置,顯然是非常的麻煩且不靈活,維護(hù)成本會(huì)非常高
使用Spring Cloud Config可以實(shí)現(xiàn)一下功能
集中管理配置
不同環(huán)境,不同配置
運(yùn)行時(shí)期動(dòng)態(tài)調(diào)整。并且在修改配置時(shí)不會(huì)停止微服務(wù)
配置修改后自動(dòng)更新
Spring Cloud Config 為分布式系統(tǒng)外部化配置提供了服務(wù)器端和客戶端的支持,它包括Config Server 和 Config Client 兩部分。默認(rèn)使用 Git 存儲(chǔ)配置內(nèi)容(也可以使用Subversion、本地文件系統(tǒng)或 Vault 存儲(chǔ)配置)。Config Client 會(huì)在微服務(wù)啟動(dòng)時(shí),請(qǐng)求 Config Server 以獲取所需要的配置屬性,并且緩存在本地以提高性能。
圖片來(lái)源
實(shí)踐 Config Server 準(zhǔn)備Git倉(cāng)庫(kù)這里需要一個(gè)Git倉(cāng)庫(kù)來(lái)存儲(chǔ)配置文件,我是使用GitHub來(lái)做倉(cāng)庫(kù)的。需要在倉(cāng)庫(kù)的根目錄下放置幾個(gè)測(cè)試用的配置文件
文件:
microservice-foo.properties microservice-foo-dev.properties microservice-foo-test.properties microservice-foo-production.properties
內(nèi)容分別是:
profile=default-1.0 profile=dev-1.0 profile=test-1.0 profile=production-1.0
然后新建分支dev ,并且將 microservice-foo-dev.properties 文件中的內(nèi)容修改為 profile=dev-2.0
編寫代碼集成:
org.springframework.cloud spring-cloud-config-server
啟動(dòng)文件添加@EnableConfigServer標(biāo)簽
配置文件:
spring.application.name=microservice-config-server # 這個(gè)uri使用可以clone的路徑 spring.cloud.config.server.git.uri=https://github.com/wkkdhr/Dome1.git # github的賬號(hào)密碼 spring.cloud.config.server.git.username=*** spring.cloud.config.server.git.password=***
啟動(dòng)服務(wù)之后,就可以使用 Config Service 的端點(diǎn)獲取配置文件內(nèi)容了。配置文件與端點(diǎn)的映射規(guī)則如下:
/{application}/{profile}/{label} /{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.yml /{label}/{application}-{profile}.properties
占位符含義:
{application} 表示微服務(wù)名稱。microservice-foo-dev.properties 中 microservice-foo 就是微服務(wù)名稱
{profile} 表示微服務(wù)名后面的dev、test等。microservice-foo-dev.properties 中 dev 就是{profile}
{label} 表示Git倉(cāng)庫(kù)分支,默認(rèn)是master,可省略
訪問(wèn) http://localhost:8080/microservice-foo/dev 得到以下結(jié)果:
可以看到相關(guān)的配置詳情信息。
訪問(wèn) http://localhost:8080/microservice-foo-dev.properties 可以直接獲取配置文件內(nèi)容:
需要說(shuō)明一下,因?yàn)槭鞘褂肎itHub來(lái)作為Git倉(cāng)庫(kù),所以訪問(wèn)有可能會(huì)出現(xiàn)失敗的風(fēng)險(xiǎn)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75863.html
摘要:是匹配規(guī)則,意思是配置以開頭并且以開頭的。健康監(jiān)控集成了??梢酝ㄟ^(guò)配置去檢查指定的配置文件訪問(wèn)結(jié)果如下可以通過(guò)設(shè)置來(lái)禁用健康檢查。顯示的是類似于用戶自己定義的屬性的那種黃色背景。意思就是這個(gè)不是系統(tǒng)的屬性,但是確認(rèn)是生效的。 《Spring Cloud與Docker 微服務(wù)架構(gòu)實(shí)戰(zhàn)》學(xué)習(xí)筆記 Config Client 在上篇文章中,我們已經(jīng)編寫好了 Config Server 那個(gè)客...
摘要:服務(wù)消費(fèi)者可以使用多種模型來(lái)發(fā)現(xiàn)服務(wù)??蛻舳藢⒍ㄆ谂c服務(wù)發(fā)現(xiàn)層進(jìn)行通信,并刷新服務(wù)實(shí)例的緩存。為了達(dá)成目的,我們將要學(xué)習(xí)使用個(gè)不同的客戶端庫(kù),服務(wù)消費(fèi)者可以使用它們來(lái)和進(jìn)行交互。 本篇代碼存放于:github 一、服務(wù)發(fā)現(xiàn)架構(gòu) ??服務(wù)發(fā)現(xiàn)架構(gòu)通常具有下面 4 個(gè)概念: 服務(wù)注冊(cè):服務(wù)如何使用服務(wù)發(fā)現(xiàn)代理進(jìn)行注冊(cè)? 服務(wù)地址的客戶端查找:服務(wù)客戶端查找服務(wù)信息的方法是什么? 信息共享...
摘要:在配置中心這一篇博文里學(xué)習(xí)了如何獲取配置文件。先在倉(cāng)庫(kù)中創(chuàng)建如下配置文件具體參考下面地址創(chuàng)建項(xiàng)目,對(duì)應(yīng)的如下其中與可以二選一,但是根據(jù)選擇的依賴不同對(duì)應(yīng)的配置文件有些許不一樣。 在《配置中心》這一篇博文里學(xué)習(xí)了如何git獲取配置文件。大概的流程可以用下圖來(lái)概括。 showImg(https://segmentfault.com/img/bVbtW4Y?w=421&h=363); 《配置...
摘要:下一篇介紹基于的服務(wù)注冊(cè)與調(diào)用。服務(wù)提供者工程配置這里服務(wù)提供者是使用之前進(jìn)階教程第三篇整合連接池以及監(jiān)控改造而來(lái),這里一樣的部分就不再重復(fù)說(shuō)明,下面將說(shuō)明新增的部分。 Spring Cloud簡(jiǎn)介 Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,它為基于JVM的云應(yīng)用開發(fā)中涉及的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競(jìng)選、分...
閱讀 2415·2021-10-14 09:43
閱讀 2444·2021-09-09 09:34
閱讀 1608·2019-08-30 12:57
閱讀 1208·2019-08-29 14:16
閱讀 728·2019-08-26 12:13
閱讀 3209·2019-08-26 11:45
閱讀 2293·2019-08-23 16:18
閱讀 2670·2019-08-23 15:27