服務化架構的演進歷史
Dubbo官網上的一張圖
1 單體應用架構
部署到一個war里
部署到一個web容器里(如tomcat)
公用一個DB
優點:
容易測試
容易部署
缺點:
開發效率低
代碼維護難
部署不靈活(如構建時間特別長,如任意小的修改,需要重新構建整個項目)
穩定性不高(如任一一個小問題,可能讓你整個系統掛掉)
擴展性不夠(如購物場景,商品服務和訂單服務,瀏覽的人比下單的人多,商品服務的流量會大一點。如果是微服務,商品服務部署10台,訂單服務部署5台)
如下圖架構圖:
2、MVC(垂直應用架構體系)
主要解決前后端、界面、控制邏輯和業務邏輯的分層問題。
比較流行的技術棧SSM,SSH等。
解決了單一架構面臨的擴容問題,流量可以分散到各個子系統中,且體積可控,提高了開發效率。
缺點:垂直應用越來越多,應用間的相互交互,相互調用已無法避免,不同系統之間存在重疊的業務。
3、RPC
隨着業務發展,業務規模的擴大,模塊化逐步成為一種趨勢。此時解決模塊之間遠程調用的RPC應用而生。
缺點: RPC本身不負責服務化。例如自動發現不管,服務的應用和發布不管、服務運維和治理不管。
4、SOA
為了解決垂直應用架構重復造輪子,提取出來作為單獨的系統對外提供服務,形成業務之間的相互重用,這是SOA就出現了。(面向服務的體系價架構)
SOA服務化架構,企業級資產重用和異構系統間的集成對接。
SOA架構的現狀
在傳統企業IT領域,主要是解決異構系統之間的互通和粗粒度的標准化(WebService)
互聯網領域,提供一套高效支撐應用快速迭代的服務化架構。例如各個互聯網公司自研或者開源的分布式架構
如下圖架構圖:
5、微服務
微服務是一種架構風格,旨在通過將功能分解到各個離散的服務中以實現對解決方案的解耦。
特征如下:
1)小,且只干一件事情
2)獨立部署和生命周期管理
3)異構性
4)輕量級通信。RPC或者Restful
如下圖架構圖: