您好,登錄后才能下訂單哦!
在優(yōu)銳課的java架構(gòu)分享學(xué)習(xí)中,討論了關(guān)于微服務(wù)是新的SOA嗎? 人們還在談?wù)揝OA嗎? 讓我們研究一下整體結(jié)構(gòu)與這兩種更新的體系結(jié)構(gòu)之間的區(qū)別。
在“什么是微服務(wù)”中,了解到具有分布式架構(gòu)的SOA和微服務(wù)比單片架構(gòu)具有明顯的優(yōu)勢(shì)。
在本博客中,我將解釋基于分層的架構(gòu),并告訴你微服務(wù)和SOA架構(gòu)之間的區(qū)別。
在深入研究微服務(wù)和SOA之間的差異之前,讓我告訴你單片式架構(gòu),SOA和微服務(wù)之間的基本差異:
用外行的術(shù)語(yǔ)來(lái)說(shuō),一個(gè)整體類(lèi)似于一個(gè)大容器,其中應(yīng)用程序的所有軟件組件都組裝在一起并緊密包裝。
面向服務(wù)的架構(gòu)本質(zhì)上是服務(wù)的集合。 這些服務(wù)相互通信。 通信可能涉及簡(jiǎn)單的數(shù)據(jù)傳遞,也可能涉及兩個(gè)或多個(gè)協(xié)調(diào)某些活動(dòng)的服務(wù)。 需要一些將服務(wù)相互連接的方法。
微服務(wù)又稱(chēng)微服務(wù)架構(gòu),是一種架構(gòu)樣式,可將應(yīng)用程序構(gòu)造為圍繞業(yè)務(wù)領(lǐng)域建模的小型自治服務(wù)的集合。
你還可以觀看下面的視頻,其中我們的微服務(wù)架構(gòu)專(zhuān)家解釋了微服務(wù)架構(gòu)和SOA之間的區(qū)別。
Edureka微服務(wù)與SOA教程
現(xiàn)在,讓我們看看微服務(wù)和SOA之間的主要區(qū)別:
微服務(wù)與SOA
在將微服務(wù)與SOA進(jìn)行比較時(shí),它們都依賴(lài)于服務(wù)作為主要組件,但是在服務(wù)特征方面差異很大
面向服務(wù)的架構(gòu)
SOA定義了四種基本服務(wù)類(lèi)型,如下所示:
商業(yè)服務(wù):
?定義核心業(yè)務(wù)運(yùn)營(yíng)的粗粒度服務(wù)。
?通過(guò)XML,業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL)等代表。
企業(yè)服務(wù):
?實(shí)施業(yè)務(wù)服務(wù)定義的功能。
?主要依靠應(yīng)用程序服務(wù)和基礎(chǔ)結(jié)構(gòu)服務(wù)來(lái)滿(mǎn)足業(yè)務(wù)請(qǐng)求。
應(yīng)用服務(wù):
?限于特定應(yīng)用程序上下文的細(xì)粒度服務(wù)。
?專(zhuān)用的用戶(hù)界面可以直接調(diào)用服務(wù)。
基礎(chǔ)設(shè)施服務(wù):
?執(zhí)行非功能性任務(wù),例如身份驗(yàn)證,審核,安全性和日志記錄。
?可以從應(yīng)用程序服務(wù)或企業(yè)服務(wù)中調(diào)用。
微服務(wù)的服務(wù)分類(lèi)標(biāo)準(zhǔn)有限。 它們由兩種服務(wù)類(lèi)型組成,如下所示。
功能服務(wù):
?支持特定的業(yè)務(wù)運(yùn)營(yíng)。
?服務(wù)的訪問(wèn)是在外部完成的,這些服務(wù)不會(huì)與其他服務(wù)共享。
?與SOA一樣,基礎(chǔ)結(jié)構(gòu)服務(wù)實(shí)現(xiàn)諸如審核,安全性和日志記錄之類(lèi)的任務(wù)。
?在這種情況下,服務(wù)不會(huì)向外界公開(kāi)。
SOA和MSA之間的主要區(qū)別
微服務(wù)和SOA之間的主要區(qū)別在細(xì)節(jié)上
?服務(wù)粒度:微服務(wù)架構(gòu)中的服務(wù)組件通常是單用途的服務(wù),可以真正,非常好地完成一件事情。借助SOA,服務(wù)組件的大小范圍可以從小型應(yīng)用程序服務(wù)到大型企業(yè)服務(wù)。實(shí)際上,在SOA中以大型產(chǎn)品甚至子系統(tǒng)為代表的服務(wù)組件是很常見(jiàn)的。
?組件共享:組件共享是SOA的核心宗旨之一。實(shí)際上,組件共享就是企業(yè)服務(wù)的全部?jī)?nèi)容。 SOA增強(qiáng)了組件共享,而MSA則嘗試通過(guò)“有界上下文”來(lái)最大程度地減少共享。有界上下文是指將組件及其數(shù)據(jù)耦合為具有最小依賴(lài)性的單個(gè)單元。由于SOA依靠多種服務(wù)來(lái)滿(mǎn)足業(yè)務(wù)請(qǐng)求,因此基于SOA構(gòu)建的系統(tǒng)可能會(huì)比MSA慢。
?中間件與API層:微服務(wù)架構(gòu)模式通常具有所謂的API層,而SOA具有消息傳遞中間件組件。 SOA中的消息傳遞中間件提供了MSA中未提供的許多其他功能,包括中介和路由,消息增強(qiáng),消息和協(xié)議轉(zhuǎn)換。 MSA在服務(wù)和服務(wù)使用者之間有一個(gè)API層。
?遠(yuǎn)程服務(wù):SOA體系結(jié)構(gòu)依賴(lài)于消息傳遞(AMQP,MSMQ)和SOAP作為主要的遠(yuǎn)程訪問(wèn)協(xié)議。大多數(shù)MSA依賴(lài)于REST和簡(jiǎn)單消息傳遞(JMS,MSMQ)這兩種協(xié)議,并且MSA中發(fā)現(xiàn)的協(xié)議通常是同質(zhì)的。
?異構(gòu)的互操作性:SOA通過(guò)其消息中間件組件促進(jìn)了多種異構(gòu)協(xié)議的傳播。 MSA嘗試通過(guò)減少集成選擇的數(shù)量來(lái)簡(jiǎn)化體系結(jié)構(gòu)模式。如果要在異構(gòu)環(huán)境中使用不同協(xié)議集成多個(gè)系統(tǒng),則需要考慮SOA。如果可以通過(guò)相同的遠(yuǎn)程訪問(wèn)協(xié)議公開(kāi)和訪問(wèn)所有服務(wù),則MSA是更好的選擇。
最后,我要說(shuō)要判斷哪種架構(gòu)比另一種架構(gòu)還不是那么簡(jiǎn)單。 它主要取決于你要構(gòu)建的應(yīng)用程序的目的。 SOA更適合需要與許多異構(gòu)應(yīng)用程序集成的大型和復(fù)雜的業(yè)務(wù)應(yīng)用程序環(huán)境; 較小的應(yīng)用程序不需要消息中間件組件,因此不適合SOA。 另一方面,微服務(wù)更適合于較小且分區(qū)合理的基于Web的系統(tǒng),在這些系統(tǒng)中,微服務(wù)為你提供了作為開(kāi)發(fā)人員的更大控制權(quán)。 結(jié)論是,由于它們都具有不同的體系結(jié)構(gòu)特征,因此這主要取決于要構(gòu)建的應(yīng)用程序的目的。
文章寫(xiě)道這里,如有不足之處,歡迎評(píng)論交流補(bǔ)充!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。