溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么

發(fā)布時間:2021-07-05 15:15:11 來源:億速云 閱讀:158 作者:chen 欄目:軟件技術(shù)

這篇文章主要講解了“SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么”吧!


SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別

首先SOA和微服務(wù)架構(gòu)一個層面的東西,而對于ESB和微服務(wù)網(wǎng)關(guān)是一個層面的東西,一個談到是架構(gòu)風(fēng)格和方法,一個談的是實現(xiàn)工具或組件。

1.SOA(Service Oriented Architecture)“面向服務(wù)的架構(gòu)”:他是一種設(shè)計方法,其中包含多個服務(wù), 服務(wù)之間通過相互依賴最終提供一系列的功能。一個服務(wù) 通常以獨立的形式存在于操作系統(tǒng)進(jìn)程中。各個服務(wù)之間 通過網(wǎng)絡(luò)調(diào)用。

2.微服務(wù)架構(gòu):其實和 SOA 架構(gòu)類似,微服務(wù)是在 SOA 上做的升華,微服務(wù)架構(gòu)強(qiáng)調(diào)的一個重點是“業(yè)務(wù)需要徹底的組件化和服務(wù)化”,原有的單個業(yè)務(wù)系統(tǒng)會拆分為多個可以獨立開發(fā)、設(shè)計、運行的小應(yīng)用。這些小應(yīng)用之間通過服務(wù)完成交互和集成。

微服務(wù)架構(gòu) = 美團(tuán)即時物流的分布式系統(tǒng)架構(gòu)設(shè)計80%的SOA服務(wù)架構(gòu)思想 + 100%的組件化架構(gòu)思想 + 80%的領(lǐng)域建模思想

ESB和微服務(wù)API網(wǎng)關(guān)。

1.ESB(企業(yè)服務(wù)總線):簡單 來說 ESB 就是一根管道,用來連接各個服務(wù)節(jié)點。為了集 成不同系統(tǒng),不同協(xié)議的服務(wù),ESB 做了消息的轉(zhuǎn)化解釋和路由工作,讓不同的服務(wù)互聯(lián)互通;

SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么

2.API網(wǎng)關(guān):API網(wǎng)關(guān)是一個服務(wù)器,是系統(tǒng)的唯一入口。從面向?qū)ο笤O(shè)計的角度看,它與外觀模式類似。

API網(wǎng)關(guān)封裝了系統(tǒng)內(nèi)部架構(gòu),為每個客戶端提供一個定制的API。它可能還具有其它職責(zé),如身份驗證、監(jiān)控、負(fù)載均衡、緩存、請求分片與管理、靜態(tài)響應(yīng)處理。為什么微服務(wù)一定要有網(wǎng)關(guān)?這篇推薦你看下。

API網(wǎng)關(guān)方式的核心要點是,所有的客戶端和消費端都通過統(tǒng)一的網(wǎng)關(guān)接入微服務(wù),在網(wǎng)關(guān)層處理所有的非業(yè)務(wù)功能。通常,網(wǎng)關(guān)也是提供REST/HTTP的訪問API。服務(wù)端通過API-GW注冊和管理服務(wù)。

SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么
SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么

3.SOA架構(gòu)特點

系統(tǒng)集成:站在系統(tǒng)的角度,解決企業(yè)系統(tǒng)間的通信問 題,把原先散亂、無規(guī)劃的系統(tǒng)間的網(wǎng)狀結(jié)構(gòu),梳理成 規(guī)整、可治理的系統(tǒng)間星形結(jié)構(gòu),這一步往往需要引入一些產(chǎn)品,比如 ESB、以及技術(shù)規(guī)范、服務(wù)管理規(guī)范;這一步解決的核心問題是【有序】

系統(tǒng)的服務(wù)化:站在功能的角度,把業(yè)務(wù)邏輯抽象成 可復(fù)用、可組裝的服務(wù),通過服務(wù)的編排實現(xiàn)業(yè)務(wù)的 快速再生,目的:把原先固有的業(yè)務(wù)功能轉(zhuǎn)變?yōu)橥ㄓ?的業(yè)務(wù)服務(wù),實現(xiàn)業(yè)務(wù)邏輯的快速復(fù)用;這一步解決 的核心問題是【復(fù)用】

業(yè)務(wù)的服務(wù)化:站在企業(yè)的角度,把企業(yè)職能抽象成 可復(fù)用、可組裝的服務(wù);把原先職能化的企業(yè)架構(gòu)轉(zhuǎn)變?yōu)榉?wù)化的企業(yè)架構(gòu),進(jìn)一步提升企業(yè)的對外服務(wù)能力;“前面兩步都是從技術(shù)層面來解決系統(tǒng)調(diào)用、系統(tǒng)功能復(fù)用的問題”。第三步,則是以業(yè)務(wù)驅(qū)動把一個業(yè)務(wù)單元封裝成一項服務(wù)。這一步解決的核心問題是【高效】

微服務(wù)架構(gòu)特點

1.通過服務(wù)實現(xiàn)組件化

  • 開發(fā)者不再需要協(xié)調(diào)其它服務(wù)部署對本服務(wù)的影響。

2.按業(yè)務(wù)能力來劃分服務(wù)和開發(fā)團(tuán)隊

  • 開發(fā)者可以自由選擇開發(fā)技術(shù),提供 API 服務(wù)

3.去中心化

  • 每個微服務(wù)有自己私有的數(shù)據(jù)庫持久化業(yè)務(wù)數(shù)據(jù)

  • 每個微服務(wù)只能訪問自己的數(shù)據(jù)庫,而不能訪問其它服務(wù)的數(shù)據(jù)庫

  • 某些業(yè)務(wù)場景下,需要在一個事務(wù)中更新多個數(shù)據(jù)庫。這種情況也不能直接訪問其它微服務(wù)的數(shù)據(jù)庫,而是通過對于微服務(wù)進(jìn)行操作。

  • 數(shù)據(jù)的去中心化,進(jìn)一步降低了微服務(wù)之間的耦合度,不同服務(wù)可以采用不同的數(shù)據(jù)庫技術(shù)(SQL、NoSQL等)。在復(fù)雜的業(yè)務(wù)場景下,如果包含多個微服務(wù),通常在客戶端或者中間層(網(wǎng)關(guān))處理。

4.基礎(chǔ)設(shè)施自動化(devops、自動化部署)

Java EE部署架構(gòu),通過展現(xiàn)層打包WARs,業(yè)務(wù)層劃分到JARs最后部署為EAR一個大包,而微服務(wù)則打開了這個黑盒子,把應(yīng)用拆分成為一個一個的單個服務(wù),應(yīng)用Docker技術(shù),不依賴任何服務(wù)器和數(shù)據(jù)模型,是一個全棧應(yīng)用,可以通過自動化方式獨立部署。

每個服務(wù)運行在自己的進(jìn)程中,通過輕量的通訊機(jī)制聯(lián)系,經(jīng)常是基于HTTP資源API,這些服務(wù)基于業(yè)務(wù)能力構(gòu)建,能實現(xiàn)集中化管理(因為服務(wù)太多啦,不集中管理就無法DevOps啦)。

5.主要區(qū)別:

SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么

感謝各位的閱讀,以上就是“SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

soa
AI