系統架構的標準要求
- 高敏捷性:及時響應業務需求,促進企業發展。
- 用戶體驗:提升用戶體驗,減少用戶流失。
- 降低成本:降低增加產品、客戶或業務方案的成本。
傳統的開發模式
傳統的 WEB 開發方式,這種方式一般被稱爲 單體式開發(Monolithic)。
我們會將所有的功能打包在一個 WAR/JAR 包裏,基本沒有外部依賴(除了容器),部署在一個 JavaEE 容器(Tomcat,JBoss,WebLogic)裏,包含了Bean,DAO,Service,Control,UI 等所有邏輯。
優點
- 易開發簡單,集中式管理
- 基本不會重複開發
- 功能都在本地,沒有分佈式的管理和調用消耗
缺點
- 效率低:開發都在同一個項目改代碼,相互等待,衝突不斷
- 維護難:代碼功功能耦合在一起,新人不知道何從下手
- 不靈活:構建時間長,任何小修改都要重構整個項目,耗時
- 穩定性差:一個微小的問題,都可能導致整個應用掛掉
- 擴展性不夠:無法滿足高併發下的業務需求
微服務架構
爲了優化以上的問題,微服務做了項目結構的調整
優化功能點:
- 微服務把每一個職責單一的功能放在一個獨立的服務中 。
- 高新能:數據庫分庫、分表,提高系統性能。
- 易部署:單體應用只要有修改,就得重新部署整個應用。而微服務對某個微服務進行修改,只需要重新部署這個服務即可。
- 易開發:微服務中開發者只需關注一個特定的業務功能,所以業務清晰、代碼量較少。開發和維護某個微服務相對簡單。
注:以上圖片來源於網絡。