javascript
Spring Cloud应用开发(七:使用Git存储方式实现分布式配置管理 )
?
1、使用Git存儲實現(xiàn)管理;
1.1、配置Git。在Git上創(chuàng)建microservice-study-config目錄,并在目錄中添加開發(fā),預(yù)發(fā)布和測試的配置文件;
?
1.2、修改服務(wù)端配置文件。將microservice-config-server工程的配置文件中本地文件存儲方式的配置刪除(或注釋),并添加git的配置信息;
?
1.3、修改客戶端配置文件。在microservice-config-client工程的配置文件中添加屬性label,并將其屬性值設(shè)置為master(label屬性表示Git的分支,其屬性默認值為master);
?
1.4、啟動工程,測試應(yīng)用。分別啟動Spring Cloud Config的服務(wù)端和客戶端程序,訪問地址http://localhost:8801/clientParam看能否獲取到Git中的配置信息;
2、手動更新運行;
2.1、在客戶端pom.xml中添加依賴spring-boot-starter-actuator,該依賴可以監(jiān)控程序在運行時的狀態(tài);
2.2、在啟動類上添加@RefreshScope注解,開啟refresh機制;
2.3、在配置文件中講安全認證信息的enable屬性設(shè)置為false;
2.4、執(zhí)行完上述3步后,下面來檢測應(yīng)用是否可以實現(xiàn)更新運行中的配置文件。啟動應(yīng)用并訪問http://localhost:8801/clientParam,此時瀏覽器的顯示效果如圖所示,此時修改Git中的配置文件application-prod.yml,將其內(nèi)容clientParam:git-prod-1.0, 修改為clientParam:git-prod-3.0后,再次通過瀏覽器訪問,上述地址,會發(fā)現(xiàn)瀏覽器的內(nèi)容并沒有變化,但通過地址http://localhost:8888/application/prod訪問時,會發(fā)現(xiàn)服務(wù)器端已經(jīng)獲取到了Git中的更新配置信息;
2.5、使用POST請求訪問地址http://localhost:8801/refresh后,將看到請求的狀態(tài)等信息;
?
?
知識點一:Spring Cloud的概念。
Spring Cloud是基于SpringBoot 提供的一套微服務(wù)解決方案,包括服務(wù)注冊與發(fā)現(xiàn),配置中心,全鏈路監(jiān)控,服務(wù)網(wǎng)關(guān),負載均衡,熔斷器等組件。
Spring Cloud利用SpringBoot的開發(fā)便利性巧妙的簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等。它們都可以用SpringBoot的開發(fā)風(fēng)格做到一鍵啟動和部署。
知識點二:Spring Cloud 的特性及特點。
特性:
1.分布式/版本化配置。
2.服務(wù)注冊和發(fā)現(xiàn)。
3.路由。
4.服務(wù)和服務(wù)之間的調(diào)用。
5.負載均衡。
6.斷路器。
7.分布式消息傳遞。
特點:
1.約定優(yōu)于配置。
2.開箱即用、快速啟動。
3.適用于各種環(huán)境。
4.輕量級的組件。
5.組件支持豐富,功能齊全。
知識點三:Eureka的服務(wù)發(fā)現(xiàn)機制
Eureka是Netflix開發(fā)的服務(wù)發(fā)現(xiàn)框架,SpringCloud將它集成在自己的子項目spring-cloud-netflix中,實現(xiàn)SpringCloud的服務(wù)發(fā)現(xiàn)功能。
為什么要使用Eureka,因為在一個完整的系統(tǒng)架構(gòu)中,任何單點的服務(wù)都不能保證不會中斷,因此我們需要服務(wù)發(fā)現(xiàn)機制,在某個節(jié)點中斷后,其它的節(jié)點能夠繼續(xù)提供服務(wù),從而保證整個系統(tǒng)是高可用的。
服務(wù)發(fā)現(xiàn)有兩種模式:一種是客戶端發(fā)現(xiàn)模式,一種是服務(wù)端發(fā)現(xiàn)模式。Erueka采用的是客戶端發(fā)現(xiàn)模式。
客戶端服務(wù)發(fā)現(xiàn)的架構(gòu)如圖:
Eureka Server會提供服務(wù)注冊服務(wù),各個服務(wù)節(jié)點啟動后,會在Eureka Server中進行注冊,這樣Eureka Server中就有了所有服務(wù)節(jié)點的信息,并且Eureka有監(jiān)控頁面,可以在頁面中直觀的看到所有注冊的服務(wù)的情況。同時Eureka有心跳機制,當(dāng)某個節(jié)點服務(wù)在規(guī)定時間內(nèi)沒有發(fā)送心跳信號時,Eureka會從服務(wù)注冊表中把這個服務(wù)節(jié)點移除。Eureka還提供了客戶端緩存的機制,即使所有的Eureka Server都掛掉,客戶端仍可以利用緩存中的信息調(diào)用服務(wù)節(jié)點的服務(wù)。Eureka一般配合Ribbon進行使用,Ribbon提供了客戶端負載均衡的功能,Ribbon利用從Eureka中讀取到的服務(wù)信息,在調(diào)用服務(wù)節(jié)點提供的服務(wù)時,會合理的進行負載。
Eureka通過心跳檢測、健康檢查、客戶端緩存等機制,保證了系統(tǒng)具有高可用和靈活性。
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud应用开发(七:使用Git存储方式实现分布式配置管理 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud应用开发(六:使
- 下一篇: Spring Cloud 整合