SOA (Service-Oriented Architecture,面向服務的架構)是一種面向服務的思維方式,它將應用程序的不同功能(服務)通過服務之間定義良好的接口和契約聯繫起來。SOA 核心思想是服務是一種可重複的業務,將其經過標準封裝達到複用的目的。SOA 可以允許各種不同的技術來表達 SOA 的架構理念,而業界比較流行的實現是 WebService,其中 WebService 採用 HTTP 協議傳輸數據,採用 XML 格式封裝數據。微服務架構和 SOA 的思想沒有太大的差別,從實現的方式而言,微服務架構強調實現的輕量化,做到服務粒度更細。這裏,微服務的“微”指的並不是服務,而實際上是應用粒度。爲了更好地識別 SOA 與微服務架構之間的區別,我們來做一個橫向對比。
方面 | SOA | 微服務架構 |
---|---|---|
應用粒度 | 多個系統整合成一個服務,粒度大 | 一個系統拆分成多個服務,粒度小 |
服務架構 | 企業服務總線(ESB),集中式架構 | 服務自治,鬆散式架構 |
服務規模 | 服務規模較小 | 服務規模膨脹 |
服務部署 | 單體架構,業務耦合 | 功能獨立,獨立部署 |
總結下,微服務架構可以理解成 SOA 的升級版,強調實現的輕量化,做到服務粒度更細。隨着敏捷開發、持續交付、虛擬化技術、DevOps 理論的實踐,微服務架構越來越被重視與應用。