開發與維運

單體架構知識點及單體架構的缺陷

什麼是單體架構
一個歸檔包(例如war格式或者Jar格式)包含了應用所有功能的應用程序,我們通常稱之為單體應用。架構單體應用的方法論,我們稱之為單體應用架構,這是一種比較傳統的架構風格。
單體架構示例圖
1.jpg

  • 單體架構的缺陷 -
    1.複雜性高 整個項目包含的模塊非常多,模塊的邊界模糊,依賴關係不清晰,代碼質量參差不齊,整個項目非常複雜。每次修改代碼都心驚膽戰,甚至添加一個簡單的功能,或者修改一個BUG都會造成隱含的缺陷。

2.技術債務逐漸上升 隨著時間推移、需求變更和人員更迭,會逐漸形成應用程序的技術債務,並且越積越多。已使用的系統設計或代碼難以修改,因為應用程序的其他模塊可能會以意料之外的方式使用它。
3.部署速度逐漸變慢 隨著代碼的增加,構建和部署的時間也會增加。而在單體應用中,每次功能的變更或缺陷的修復都會導致我們需要重新部署整個應用。全量部署的方式耗時長、影響範圍大、風險高,這使得單體應用項目上線部署的頻率較低,從而又導致兩次發佈之間會有大量功能變更和缺陷修復,出錯概率較高。
4.擴展能力受限,無法按需伸縮 單體應用只能作為一個整體進行擴展,無法結合業務模塊的特點進行伸縮。
5.阻礙技術創新 單體應用往往使用統一的技術平臺或方案解決所有問題,團隊的每個成員都必須使用相同的開發語言和架構,想要引入新的框架或技術平臺非常困難。由於單體架構的缺陷日益明顯,所以越來越多的公司採用微服務架構解決上面提到的單體架構中的問題。不同於構建單一、龐大的應用,微服務架構將應用拆分為一套小且互相關聯的服務。
本文來源於:奈學開發者社區,如有侵權,請聯繫我刪除~

Leave a Reply

Your email address will not be published. Required fields are marked *