後端的應用架構經過發展,分爲單一應用架構、垂直應用架構、分佈式應用架構、面向服務的分佈式應用架構、微服務架構等。
一、單一應用架構
把所有功能都集中在一個項目裏面,類似於剛學習時的SSM,就把所有的功能都放在同一個項目。
適用於小型網站,小型管理系統,將所有功能都部署到一個功能裏,簡單易用。
缺點: 1、性能擴展比較難
2、協同開發問題
3、不利於升級維護
二、垂直應用架構
通過切分業務來實現各個模塊獨立部署,降低了維護和部署的難度,團隊各司其職更易管理,性能擴展也更方便,更有針對性。
缺點: 公用模塊無法重複利用,開發性的浪費‘’
三、分佈式應用架構
將各個應用通過分層獨立出來,可以利用rpc實現web與service、service與service的互相調用,提高了代碼的複用性。
缺點: 每個調用的模塊要存儲一份完整的被調用模塊的位置和狀態,一旦位置和狀態發生變化,就要更新所有涉及的配置。
從圖可以看出,這種架構缺乏服務治理,服務是耦合的,如果服務地址是發生了變化,並不會動態化的發現服務地址,需要修改的地方很多
四、
面向服務的分佈式架構
隨着架構不斷增大,服務節點也越來越多,服務之間的調用和依賴關係也越來越複雜,需要有一個統一的中心來調度、路由、管理所有的服務,基於這個中心構建的這個星型架構就是現在目前最主流的SOA分佈式架構。
服務地址不需要寫死,服務是動態的自動註冊和發現
五、微服務架構
這個架構是在soa的基礎上實現的,微服務架構粒度更加精細,每個功能同有一個專門的項目。這種架構的代表是微服務架構(springcloud)