隨著業務增長,單體應用面臨雙重壓力:共用邏輯重複建設(如用戶、評價模塊在多系統重複維護),單系統業務過度耦合導致擴展受限。SOA(面向服務架構)通過統一服務交互標準,成為解決此類問題的核心指導思想。
以豆瓣為例:從單一書評發展為社區、讀書、電影、音樂四大板塊,共用用戶、評價邏輯。若各系統獨立維護,修改一處邏輯需同步多系統,極易出錯。解決道:抽象共用業務為領域服務(用戶服務、評價服務等)。
超市顧客增多時需分工協作;系統同理,需拆分為獨立服務單元,各自水平擴展。
拆分後若無管控,HTTP、RMI、WebService、Hessian、TCP/NIO、同步/異步混用,導致:
SOA 強制統一服務交互協議,異構系統(語言、框架不限)均通過標準服務調用。
| 核心挑戰 | eBay 應對策略 |
|---|---|
| 多級服務調用延遲 | 高性能交互框架 + 調用鏈超時熔斷(B 超時不再調 C) |
| 跨服務調試/追蹤困難 | 全鏈路追蹤系統,快速定位故障域 |
| 安全/監控要求提升 | 每服務獨立安全控制與監控指標 |
| 存量應用遷移成本高 | 領域驅動劃分服務,持續培訓開發者 |
| QoS 保障(流控、資源隔離) | 服務級流量控制、機器資源配額管理 |
| 高可用與彈性伸縮 | 平台層故障隔離、自動擴縮容 |
| 多版本與依賴管理 | 服務倉庫管理版本與依賴圖,升級編排 |
SCA(服務組件架構)、ESB(企業服務總線)為主流參考標準,業界有成熟框架實現(如 Apache Tuscany、Mule、WSO2 等)。