1.編譯,部署困難:開發者而言,打包構建巨型應用是一件很痛苦的事情
2.程式碼分支管理困難:複用程式碼模組由多個團隊共同維護修改,程式碼merge衝突經常發生
3.資料庫連線耗盡:巨大應用對資料庫需要建立多個連線,對資料庫的挑戰很大
4.新增業務困難:不熟悉該系統的人新增業務是一件非常困難的事情
解決方案:
縱向拆分:將一個大應用分成多個小應用,新業務比較獨立,可以直接部署一個獨立的web系統
橫向拆分:將複用的業務拆分開,獨立部署為分散式服務,新增業務呼叫該分散式服務,不需要依賴模組操作。模組內邏輯變化後,保證介面一致就不會影響業務程式和其他模組。