單體應用有如下優點:
開發簡單直接,集中式管理, 基本不會重復開發
功能都在本地,沒有分布式的管理開銷和調用開銷。
它的缺點也非常明顯,特別對于互聯網公司來說:
開發效率低:所有的開發在一個項目改代碼,遞交代碼相互等待,代碼沖突不斷
代碼維護難:代碼功能耦合在一起,新人不知道何從下手
部署不靈活:構建時間長,任何小修改必須重新構建整個項目,這個過程往往很長
穩定性不高:一個微不足道的小問題,可以導致整個應用掛掉
擴展性不夠:無法滿足高并發情況下的業務需求
微服務有如下優點:
微服務是松藕合的,無論是在開發階段或部署階段都是獨立的。
能夠快速響應, 局部修改容易, 一個服務出現問題不會影響整個應用。
易于和第三方應用系統集成, 支持使用不同的語言開發, 允許你利用融合最新技術。
每個微服務都很小,足夠內聚,足夠小,代碼容易理解。團隊能夠更關注自己的工作成果, 聚焦指定的業務功能或業務需求。
開發簡單、開發效率提高,一個服務可能就是專一的只干一件事, 能夠被小團隊單獨開發,這個小團隊可以是 2 到 5 人的開發人員組成。
同樣的, 也存在如下缺點:
微服務架構帶來過多的運維操作, 可能需要團隊具備一定的 DevOps 技巧.
分布式系統可能復雜難以管理。因為分布部署跟蹤問題難。當服務數量增加,管理復雜性增加。
浙公網安備 33010602011771號