系統(tǒng)架構(gòu)演變
1)單體應(yīng)用架構(gòu)
? web工程的所有模塊(web層,service層,dao層)全部打包放到一個web容器中運行。

? 優(yōu)點:
? (1)架構(gòu)簡單,開發(fā)成本低,周期短,適合小型項目。
? 缺點:
? (1)全部功能集成在一個工程中,對于大型項目不利于開發(fā)、拓展、維護。
? (2)性能拓展只能通過擴展集群節(jié)點,成本高,有瓶頸。
? (3)技術(shù)棧受限。
2)垂直應(yīng)用架構(gòu)
? 當訪問量逐漸增加時,單一應(yīng)用增加機器帶來的加速度越來越小,將應(yīng)用拆分成互不相干的多個應(yīng)用,以提升效率。
? 優(yōu)點:
? (1)項目架構(gòu)簡單,開發(fā)成本低,周期短,小型項目的首選。
? (2)通過垂直拆分,原先的單體應(yīng)用不至于不限擴大。
? (3)不同項目可以采用不同的技術(shù)。
? 缺點:
? (1)全部功能集中到一個工程,對于大型項目不利于開發(fā)、拓展、維護。
? (2)性能拓展只能通過拓展集群節(jié)點,成本高,有瓶頸。
?3)分布式SOA架構(gòu)
? SOA(Service-Oriented Architecture),即面向服務(wù)架構(gòu),通過將核心業(yè)務(wù)邏輯抽離成通用的服務(wù)組件進行分布式部署、組合和
?使用,一個服務(wù)組件通常以獨立形式的進程運行。
? 優(yōu)點:
? (1)抽取公共功能作為通用服務(wù)組件,提高開發(fā)效率。
? (2)對不同服務(wù)進行集群化部署可以緩解系統(tǒng)壓力。
? (3)降低系統(tǒng)的耦合度。
? 缺點:
? (1)抽取服務(wù)的粒度較大
? (2)服務(wù)提供方和調(diào)用方的接口耦合度較高
?4)微服務(wù)架構(gòu)
? 微服務(wù)架構(gòu)是在SOA機構(gòu)上的一個升華,強調(diào)業(yè)務(wù)的徹底組件化和服務(wù)化,對業(yè)務(wù)系統(tǒng)進行更細粒度的邏輯拆分成多個獨立開發(fā)運行的小應(yīng)用。
? 優(yōu)點:
? (1)通過服務(wù)的原子化拆分,以及微服務(wù)的開發(fā)、打包部署,小團隊的交付周期縮短,運維成本降低。
? (2)微服務(wù)遵循單一原則。微服務(wù)之間采用Restful等輕量協(xié)議傳輸。
? 缺點:
? (1)服務(wù)過多,服務(wù)治理成本高,不利于系統(tǒng)維護。
? (2)分布式開發(fā)成本高(容錯,分布式事務(wù)等)。
?SOA架構(gòu)和微服務(wù)的區(qū)別:
功能 SOA 微服務(wù)
組件大小 大塊業(yè)務(wù)邏輯 單獨任務(wù)或小塊業(yè)務(wù)邏輯
耦合 通常松耦合 總是松耦合
公司架構(gòu) 任何類型 小型、專注于功能交叉團隊
管理 著重中央管理 著重分散管理
目標 確保應(yīng)用能夠交互操作 執(zhí)行新功能、快速拓展開發(fā)團隊