更新時間:2020-04-10 來源:黑馬程序員 瀏覽量:
什么單體架構(gòu)?
在軟件設計中,經(jīng)常提及和使用經(jīng)典的 3 層模型,即表示層、業(yè)務邏輯層和數(shù)據(jù)訪問層。
表示層:用于直接和用戶交互,也稱為交互層,通常是網(wǎng)頁、UI 等。
業(yè)務邏輯層:即業(yè)務邏輯處理層,例如用戶輸入的信息要經(jīng)過業(yè)務邏輯層的處理后,才能展現(xiàn)給用戶。
數(shù)據(jù)訪問層:用于操作數(shù)據(jù)庫,用戶在表示層會產(chǎn)生大量的數(shù)據(jù),通過數(shù)據(jù)訪問層對數(shù)據(jù)庫進行讀寫操作。
雖然在軟件設計中劃分了經(jīng)典的 3 層模型,但是對業(yè)務場景沒有劃分。一個典型的單體應用就是將所有的業(yè)務場景的表示層、業(yè)務邏輯層和數(shù)據(jù)
訪問層放在一個工程中,最終經(jīng)過編譯、打包,部署在一臺服務器上。
單體架構(gòu)圖如下所示:
單體架構(gòu)的優(yōu)點
部署簡單: 由于是完整的結(jié)構(gòu)體,可以直接部署在一個服務器上即可。
技術(shù)單一: 項目不需要復雜的技術(shù)棧,往往一套熟悉的技術(shù)棧就可以完成開發(fā)。
用人成本低: 單個程序員可以完成業(yè)務接口到數(shù)據(jù)庫的整個流程。
單體架構(gòu)的缺點
系統(tǒng)啟動慢, 一個進程包含了所有的業(yè)務邏輯,涉及到的啟動模塊過多,導致系統(tǒng)的啟動、重啟時間周期過長;
系統(tǒng)錯誤隔離性差、可用性差,任何一個模塊的錯誤均可能造成整個系統(tǒng)的宕機;
可伸縮性差:系統(tǒng)的擴容只能只對這個應用進行擴容,不能做到對某個功能點進行擴容;
線上問題修復周期長:任何一個線上問題修復需要對整個應用系統(tǒng)進行全面升級。
猜你喜歡:
java中級程序員學習線路圖
Spring Cloud Alibaba技術(shù)棧視頻教程
【AI設計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應用開發(fā)-Java】畢業(yè)5個工作日就業(yè)率98.18%,最高薪資 17.5k*13薪,全班平均薪資9244元
2025-09-19