單體應(yīng)用(Monolithic application)是指一個應(yīng)用程序以一體化的形式部署和運行在一個獨立的進(jìn)程中,通常包含一個完整的應(yīng)用程序棧(application stack),包括用戶界面、應(yīng)用邏輯、數(shù)據(jù)存儲和處理等組件。單體應(yīng)用是傳統(tǒng)的應(yīng)用開發(fā)和部署方式,通常使用一個大型的代碼庫,所有功能都在同一個代碼庫中實現(xiàn),整個應(yīng)用程序由一個運行時進(jìn)程執(zhí)行,數(shù)據(jù)庫和其他資源都是共享的。
理解單體應(yīng)用可以類比成一個傳統(tǒng)的大型商場,所有商品都在一個建筑物里面,商場有一個總控制中心來管理各個部門的運營,不同的部門通過共享資源來協(xié)同工作。同樣地,單體應(yīng)用也是一個大型的應(yīng)用程序,所有功能都在同一個代碼庫中實現(xiàn),由一個運行時進(jìn)程來執(zhí)行,不同的模塊通過共享資源來協(xié)同工作。
盡管單體應(yīng)用具有部署簡單、開發(fā)效率高等優(yōu)點,但也存在一些局限性,如擴(kuò)展性差、可靠性差、靈活性差等。隨著業(yè)務(wù)增長和應(yīng)用規(guī)模擴(kuò)大,單體應(yīng)用的弊端逐漸顯露出來,因此,現(xiàn)在越來越多的應(yīng)用采用了微服務(wù)等分布式架構(gòu)來解決這些問題。