1. 程式人生 > >微服務與SOA的區別

微服務與SOA的區別

數據庫 通過 class 運維 分布 設計 第一個 架構 組件

微服務架構強調的第一個重點就是業務系統需要徹底的組件化和服務化,原有的單個業務系統會拆分為多個可以獨立開發,設計,運行和運維的小應用。這些小應用之間通過服務完成交互和集成。每個小應用從前端web ui,到控制層,邏輯層,數據庫訪問,數據庫都完全是獨立的一套。在這裏我們不用組件而用小應用這個詞更加合適,每個小應用除了完成自身本身的業務功能外,重點就是還需要消費外部其它應用暴露的服務,同時自身也將自身的能力朝外部發布為服務。

那麽微服務跟SOA有什麽區別呢,可以把微服務當做去除了ESB的SOA。ESB是SOA架構中的中心總線,設計圖形應該是星形的,而微服務是去中心化的分布式軟件架構。

總體我覺得SOA與微服務的區別在於如下幾個方面:

  1. 微服務相比於SOA更加精細,微服務更多的以獨立的進程的方式存在,互相之間並無影響;
  2. 微服務提供的接口方式更加通用化,例如HTTP RESTful方式,各種終端都可以調用,無關語言、平臺限制;
  3. 微服務更傾向於分布式去中心化的部署方式,在互聯網業務場景下更適合;

微服務與SOA的區別