垂直架構
特點
- 不管項目多復雜,有多少個模塊,全在一個項目中編寫
- 項目部署在一個web容器上,適合於 訪問量小,用戶數不多的業務
優點
- 耦合度比較高
- 所有功能模板代碼都放到了一起,
- 不利於擴展
- 寫好了, 測試完了,想要加一個模塊非常的困難
- 如果果某個功能出錯有問題,所有的功能都需要再重新打包編譯,部署效率極低。
- 上線時, 把項目停掉
- 不利於團隊協作維護
- 團隊協作難度高,如多人使用SVN/git很可能在同一個功能上,多人同時進行了修改,作為一個大而全的項目,可能個人只是需要開發其中一個小的模塊的需求,卻需要導入整個項目全量的代碼。
缺點
- 結構簡單
分布式架構(SOA架構)
SOA(Service-Oriented Architecture)它是一種支持面向服務的架構。(分布式架構)
特點
- 將傳統項目中的一個模塊,拆分成一個一個項目
優點
- 降低模塊之間的耦合度
- 利於擴展
- 利於維護
缺點
- 結構復雜
- 對於小型項目 ,成本比較高
特點
- 模塊的拆分
- 如果某一個系統訪問量比較大時, 可以多部署幾台tomcat,
- 當出現高並發的時候 , 通過nigix負載均衡,進行分配訪問
- 如果今后, 想要再添加 一個模塊, 可以直接在寫一個項目,弄台新機器,直接上線
- 業務功能的拆分
- 除了把對應模塊拆成一個系統外, 還可以把我們的三層架構拆成對應的服務,把Controller做為一個系統,Dao和Service做為一個系統
- 如果調用多了,一台不夠用戶了, 可以多部署幾台
- 存在的問題
- 在以前Controller調用Service,通過注入進行調用,注入屬於是Spring的
- 當Controller在一個服務器中, Service在另一台服務器,是沒有辦法注入的
- 此時, 可以采用一個技術叫Dubbox,可以實現跨tomcat 注入 遠程調用
- Dubbo是的跨服務器,注入的技術,這么多服務,到底是認認證調用誰,怎么知道的呢
- 通過zookeeper注冊中心,所有的服務都到zookeeper當中注冊一下, 注冊后.
- 今后服務之間的調用,就可以通過zookeeper找到對應的服務,通過Dubbo進入注入
