微服務架構與SOA架構的區別與聯絡

2022-06-06 07:09:06 字數 2307 閱讀 8517

​ 如果我們開啟支付寶首頁,去看我們的餘額,它會展示你的總資產,昨日收益、累計收益等資訊。假如這個頁面所展示的資訊,都來自各個不同的系統/應用,我們通過各個介面把這些資料展示出來。如果我們現在要在前端頁面展示這幾項資料的話,我們應該怎麼去展示呢?

​ 在這種情況下,我們不可能讓客戶端與6個不同的應用/系統都一一去通訊來去完成資料的展示。而是6個應用/系統之間進行彼此通訊來完成呼叫,最後客戶端只需要呼叫乙個介面來獲取資料即可,而不是與每乙個應用/系統進行通訊。我們的架構可能是如下的樣子:

​ 乙個電商系統,比如**,我們在首頁會展示很多資料資訊,例如:首頁資訊、商品資訊、個人資訊、推送資訊等等很多。如果首頁展示的資料來自100個不同的應用/系統,那麼通過如上架構,我們在後端便會出現幾百個乃至上千個通訊的互動,那麼後端的結構就會變得非常的龐大和複雜。所以在這樣的架構下,我們需要對上面結構作出一些調整 ,所以我們就引入了soa架構

​ soa(全稱:service oriented architecture),中文意思為 「面向服務的架構」,你可以將它理解為乙個架構模型或者一種設計方法,而並不是服務解決方案。其中包含多個服務, 服務之間通過相互依賴或者通過通訊機制,來完成相互通訊的,最終提供一系列的功能。乙個服務通常以獨立的形式存在與作業系統程序中。各個服務之間通過網路呼叫 。

​ 跟 soa 相提並論的還有乙個 esb(企業服務匯流排),簡單來說esb就是一根管道,用來連線各個服務節點。為了整合不同系統,不同協議的服務,esb 可以簡單理解為:它做了訊息的轉化解釋和路由工作,讓不同的服務互聯互通;

​ 我們將各個應用之間彼此的通訊全部去掉,在中間引入乙個esb企業匯流排,各個服務之間,只需要和esb進行通訊,這個時候,各個應用之間的互動就會變得更加的清晰,業務架構/邏輯等,也會變得很清楚。原本雜亂沒有規劃的系統,梳理成了乙個有規劃可治理的系統,在這個過程中,最大的變化,就是引入了esb企業匯流排。

soa 所解決的核心問題

系統整合:站在系統的角度,解決企業系統間的通訊問 題,把原先散亂、無規劃的系統間的網狀結構,梳理成規整、可治理的系統間星形結構,這一步往往需要引入 一些產品,比如 esb、以及技術規範、服務管理規範;這一步解決的核心問題是【有序】

系統的服務化:站在功能的角度,把業務邏輯抽象成可復用、可組裝的服務,通過服務的編排實現業務的快速再生。目的:把原先固有的業務功能轉變為通用的業務服務,實現業務邏輯的快速復用;這一步解決的核心問題是【復用】

業務的服務化:站在企業的角度,把企業職能抽象成可復用、可組裝的服務;把原先職能化的企業架構轉變為服務化的企業架構,進一步提公升企業的對外服務能力;前面兩步都是從技術層面來解決系統呼叫、系統功能復用的問題。第三步,則是以業務驅動把乙個 業務單元封裝成一項服務。這一步解決的核心問題是 【高效】

​ 微服務架構其實和soa架構類似,微服務是在soa上做的昇華。微服務架構重點強調的乙個是"業務需要徹底的元件化和服務化",原有的單個業務系統會拆分為多個可以獨立開發、設計、執行的小應用。這樣的小應用和其他各個應用之間,相互去協作通訊,來完成乙個互動和整合,這就是微服務架構。

元件化:元件表示乙個可以獨立更換和公升級的單元,就以pc機為例,pc中的 cpu、記憶體、顯示卡、硬碟一樣,獨立更換公升級而不影響其他單元。如果我們把pc作為元件以服務的方式構建,那麼這台pc只需要維護主機板和一些必要的外部裝置。cpu、記憶體、硬碟都是以元件方式提供服務,pc需要呼叫cpu做計算處理,只需要知道cpu這個元件的位址即可。

微服務的特徵

​ 1. 通過服務實現元件化

​ 2. 按業務能力來劃分服務和開發團隊

​ 3. 去中心化

​ 4. 基礎設施自動化(devops、自動化部署)

​ 1. 微服務去中心化,去掉esb企業匯流排。微服務不再強調傳統soa架構裡面比較重的esb企業服務匯流排,同時soa的思想進入到單個業務系統內部實現真正的元件化

docker容器技術的出現,為微服務提供了更便利的條件,比如更小的部署單元,每個服務可以通過類似node或者spring boot等技術跑在自己的程序中。

soa注重的是系統整合方面,而微服務關注的是完全分離

微服務架構與SOA架構的區別與聯絡 copy

如果我們開啟支付寶首頁,去看我們的餘額,它會展示你的總資產,昨日收益 累計收益等資訊。假如這個頁面所展示的資訊,都來自各個不同的系統 應用,我們通過各個介面把這些資料展示出來。如果我們現在要在前端頁面展示這幾項資料的話,我們應該怎麼去展示呢?在這種情況下,我們不可能讓客戶端與6個不同的應用 系統都一...

微服務架構與傳統SOA幾個主要區別

一 從服務拆分粒度考慮,微服務體系中的微服務是單一用途的 做一件事,做好它 而在soa架構中,服務元件大小可以是小型應用程式服務,也可以是大型的企業應用服務。在很多使用soa架構的系統中,粒度很大,單個服務經常就是某個大型的產品,甚至是整個乙個子系統。二 元件共享 元件共享是soa的核心原則之一。事...

微服務與微服務架構

微服務 微服務強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題 提供落地對應服務的乙個服務應用,狹意的看,可以看作eclipse裡面的乙個個微服務工程 或者module。例如 訂單服務 支付服務 微服務架構 馬丁.福勒 martin fowler 微服務架構介紹 微服務架構是 種架構模式...