更新時(shí)間:2022年11月09日14時(shí)41分 來源:傳智教育 瀏覽次數(shù):
微服務(wù)的概念源于2014年3月Martin Fowler(馬丁·福勒)所寫的一篇文章“Mieroservices”(微服務(wù))。文中表達(dá)了一種觀念,微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)、互相配合,為用戶提供最終價(jià)值。
微服務(wù)架構(gòu)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由多個(gè)微服務(wù)架構(gòu)組成。系統(tǒng)中的各個(gè)微服務(wù)架構(gòu)可被獨(dú)立部署,各個(gè)微服務(wù)架構(gòu)之間是松耦合的。每個(gè)微服務(wù)架構(gòu)僅關(guān)注于完成一項(xiàng)任務(wù)并很好地完成該任務(wù)。在所有情況下,每項(xiàng)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力。微服務(wù)架構(gòu)的功能如下。
1.微服務(wù)架構(gòu)的自動(dòng)化部署
微服務(wù)架構(gòu)中,系統(tǒng)會被拆分為若干個(gè)微服務(wù)架構(gòu),每個(gè)微服務(wù)架構(gòu)又是一個(gè)獨(dú)立的應(yīng)用程序。單體架構(gòu)中的應(yīng)用程序只需要部署一次,而微服務(wù)架構(gòu)中有多少服務(wù)就需要部署多少次。隨著服務(wù)數(shù)量的增加,部署的難度就會增加。業(yè)務(wù)的粒度劃分得越細(xì),微服務(wù)架構(gòu)的數(shù)量就越多。因此就出現(xiàn)了自動(dòng)化部署技術(shù),例如Docker容器自動(dòng)化部署技術(shù)方便了微服務(wù)架構(gòu)項(xiàng)目下各模塊在服務(wù)器上的部署。
2.服務(wù)集中化管理
微服務(wù)架構(gòu)系統(tǒng)是按照業(yè)務(wù)單元來劃分的,服務(wù)數(shù)量越多,管理起來越復(fù)雜。在這里,微服務(wù)架構(gòu)提供了集中化管理組件Spring Cloud Config,人們可以在Spring Cloud Config配置文件中統(tǒng)一配置服務(wù),這樣很大程度上方便了對項(xiàng)目的集中化管理。
3.支持熔斷機(jī)制
微服務(wù)架構(gòu)就是分布式的。在分布式系統(tǒng)中,服務(wù)之間是相互依賴的,如果一個(gè)服務(wù)出現(xiàn)了故障或者網(wǎng)絡(luò)延遲,在高并發(fā)的情況下,就會導(dǎo)致線程阻塞,在很短的時(shí)間內(nèi)該服務(wù)的線程資源會消耗殆盡,最終使得該服務(wù)不可用。
由于服務(wù)相互依賴,這樣可能會導(dǎo)致整個(gè)服務(wù)的不可用,這就是“雪崩”效應(yīng)。熔斷機(jī)制是應(yīng)對“雪崩”效應(yīng)的一種微服務(wù)架構(gòu)鏈路保護(hù)機(jī)制。我們在各種場景下都會接觸到熔斷這兩個(gè)字。高壓電路中,如果某個(gè)地方的電壓過高,熔斷器就會熔斷,對電路進(jìn)行保護(hù);股票交易中,如果股票指數(shù)過高,就也會采用熔斷機(jī)制,暫停股票的交易。同樣,在微服務(wù)架構(gòu)中,熔斷機(jī)制也是起著類似的作用。當(dāng)一條鏈路的某個(gè)微服務(wù)架構(gòu)不可用或者響應(yīng)時(shí)間太長時(shí),會進(jìn)行服務(wù)的降級,進(jìn)而調(diào)用熔斷該節(jié)點(diǎn)的微服務(wù)架構(gòu),快速返回錯(cuò)誤的響應(yīng)信息;當(dāng)檢測到該節(jié)點(diǎn)微服務(wù)架構(gòu)調(diào)用響應(yīng)正常后,恢復(fù)調(diào)用鏈路。
北京校區(qū)