====》場景
不可能讓客戶端與6個不同的應用/系統都一一去通信來去完成數據的展示。而是6個應用/系統之間進行彼此通信來完成調用,最后客戶端只需要調用一個接口來獲取數據即可。
SOA架構
SOA(全稱:Service Oriented Architecture),中文意思為 “面向服務的架構”,你可以將它理解為一個架構模型或者一種設計方法,而並不是服務解決方案。其中包含多個服務, 服務之間通過相互依賴或者通過通信機制,來完成相互通信的,最終提供一系列的功能。
跟 SOA 相提並論的還有一個 ESB(企業服務總線),簡單來說ESB就是一根管道,用來連接各個服務節點。為了集成不同系統,不同協議的服務,ESB 可以簡單理解為:它做了消息的轉化解釋和路由工作,讓不同的服務互聯互通。
SOA 所解決的核心問題:
1.系統集成:站在系統的角度,解決企業系統間的通信問 題,把原先散亂、無規划的系統間的網狀結構,梳理成規整、可治理的系統間星形結構,這一步往往需要引入 一些產品,比如 ESB、以及技術規范、服務管理規范;這一步解決的核心問題是【有序】
2.系統的服務化:站在功能的角度,把業務邏輯抽象成可復用、可組裝的服務,通過服務的編排實現業務的快速再生。目的:把原先固有的業務功能轉變為通用的業務服務,實現業務邏輯的快速復用;這一步解決的核心問題是【復用】
3.業務的服務化:站在企業的角度,把企業職能抽象成可復用、可組裝的服務;把原先職能化的企業架構轉變為服務化的企業架構,進一步提升企業的對外服務能力;前面兩步都是從技術層面來解決系統調用、系統功能復用的問題。第三步,則是以業務驅動把一個 業務單元封裝成一項服務。這一步解決的核心問題是 【高效】
微服務架構
微服務架構重點強調的一個是"業務需要徹底的組件化和服務化",原有的單個業務系統會拆分為多個可以獨立開發、設計、運行的小應用。這樣的小應用和其他各個應用之間,相互去協作通信,來完成一個交互和集成,這就是微服務架構。
微服務的特征
- 1.通過服務實現組件化
- 2.按業務能力來划分服務和開發團隊
- 3.去中心化
- 4.基礎設施自動化(devops、自動化部署)
SOA 和微服務架構的差別
1.微服務去中心化,去掉ESB企業總線。微服務不再強調傳統SOA架構里面比較重的ESB企業服務總線,同時SOA的思想進入到單個業務系統內部實現真正的組件化
2.Docker容器技術的出現,為微服務提供了更便利的條件,比如更小的部署單元,每個服務可以通過類似Node或者Spring Boot等技術跑在自己的進程中。
3.SOA注重的是系統集成方面,而微服務關注的是完全分離