在傳統(tǒng)IT行業(yè)的軟件系統(tǒng)設(shè)計(jì)大多都是各種獨(dú)立子系統(tǒng)的堆砌,這也就是所說的單體架構(gòu),其本身擴(kuò)展性差,可靠性低,維護(hù)成本高。單體架構(gòu)在初期系統(tǒng)規(guī)模比較小的情況下尚且能夠較好的支撐,但是隨著系統(tǒng)規(guī)模的擴(kuò)大,它暴露出來的問題也越來越多,主要有以下幾點(diǎn):
隨后,引入了SOA服務(wù)化(面向服務(wù)的架構(gòu),它將應(yīng)用程序的不同功能單元(服務(wù))進(jìn)行拆分,并通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來)。但是,由于 SOA 早期均使用了ESB總線模式,這種總線模式與某種技術(shù)棧是強(qiáng)綁定的,如,J2EE。這又使得很多企業(yè)的遺留系統(tǒng)很難對接,切換時(shí)間太長,對接成本太高,新系統(tǒng)穩(wěn)定性的收斂也需要一些時(shí)間。最終 SOA 看起來很美,但卻成為了企業(yè)級奢侈品,中小公司都望而生畏。
微服務(wù)是在 SOA 上做的升華,微服務(wù)最早由Martin Fowler與James Lewis于2014年共同提出,微服務(wù)架構(gòu)風(fēng)格是一種使用一套小服務(wù)來開發(fā)單個(gè)應(yīng)用的方式途徑,每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中,并使用輕量級機(jī)制通信,通常是HTTP Rest API的方式(告別ESB服務(wù)總線),這些服務(wù)基于業(yè)務(wù)能力構(gòu)建,并能夠通過自動(dòng)化部署機(jī)制來獨(dú)立部署,這些服務(wù)使用不同的編程語言實(shí)現(xiàn),以及不同數(shù)據(jù)存儲(chǔ)技術(shù),并保持最低限度的集中式管理。
簡單講,微服務(wù)不再強(qiáng)調(diào)傳統(tǒng)SOA架構(gòu)里面比較重的ESB服務(wù)總線,同時(shí)將SOA的思想延伸到單個(gè)業(yè)務(wù)系統(tǒng)內(nèi)部實(shí)現(xiàn)真正的組件化。微服務(wù)架構(gòu)強(qiáng)調(diào)的一個(gè)重點(diǎn)是“業(yè)務(wù)需要徹底的組件化和服務(wù)化”。
從微服務(wù)的概念可以看出它有如下好處:
轉(zhuǎn)自 @軟件測試開發(fā)技術(shù)棧 ,希望對您有所幫助。
聯(lián)系客服