更新時間:2022-06-13 來源:黑馬程序員 瀏覽量:
通常我們所使用的傳統(tǒng)單體應用架構都是模塊化的設計邏輯,程序在編寫完成后會被打包并部署為一個具體的應用,而應用的格式則依賴于相應的應用語言和框架。
例如,在網上商城系統(tǒng)中,Java Web工程通常會被打成WAR包部署在Web服務器上,而普通Java工程會以JAR包的形式包含在WAR包中。傳統(tǒng)單體應用架構模型(模擬電商系統(tǒng),包括用戶界面StoreFrontUI、用于檢查信用、維護庫存和發(fā)貨訂單的一些后端服務):
當前開發(fā)工具的功能目標是支持單片應用程序的開發(fā),這對于一個傳統(tǒng)的單體應用來說非常容易實現(xiàn)。
只需將應用部署為簡單的WAR文件即可部署,并且只需要部署一個單體應用即可。
可以通過在負載均衡器后運行應用程序的多個副本來伸縮應用程序。伴隨著用戶人數(shù)的增加,一臺機器已經滿足不了系統(tǒng)的負載,此時我們就會考慮系統(tǒng)的水平擴展。
一個簡單的應用會隨著時間的推移而逐漸變大,那么開發(fā)團隊將會面臨很多問題,其中最主要問題就是這個應用太復雜,以至于任何單個開發(fā)者都很難進行二次開發(fā)或維護,特別是那些剛加入團隊的開發(fā)人員,應用程序可能難以理解和修改。
雖然使用負載均衡的方式可以對項目中的服務容量進行水平擴展,這樣導致其他不需要擴展的服務也進行了相應的擴展,但這種擴展是不需要的,因此這種方式會極大的浪費資源。
當一個應用越犬時,啟動時間就會越長。開發(fā)和調試的過程中,如果有很大一部分時間都要在等待中渡過,那么必然會對開發(fā)效率有極大的影響。
傳統(tǒng)單體應用架構在運行時的可靠性比較低,當所有模塊都運行在一個進程中時,如果任何一個模塊中出現(xiàn)了一個Bug,可能會導致整個進程崩潰,從而影響到整個應用。
傳統(tǒng)單體應用架構一旦選定使用某些技術,則后期的開發(fā)和擴展將在這些技術的基礎上實現(xiàn)。如果需要更改某種技術,則可能需要將整個應用全部重新開發(fā),這種成本是非常大的。