首頁技術(shù)文章正文

什么是單體架構(gòu)?單體架構(gòu)有什么優(yōu)缺點(diǎn)?

更新時(shí)間:2020-04-10 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


什么單體架構(gòu)?


在軟件設(shè)計(jì)中,經(jīng)常提及和使用經(jīng)典的 3 層模型,即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。


表示層:用于直接和用戶交互,也稱為交互層,通常是網(wǎng)頁、UI 等。


業(yè)務(wù)邏輯層:即業(yè)務(wù)邏輯處理層,例如用戶輸入的信息要經(jīng)過業(yè)務(wù)邏輯層的處理后,才能展現(xiàn)給用戶。


數(shù)據(jù)訪問層:用于操作數(shù)據(jù)庫,用戶在表示層會(huì)產(chǎn)生大量的數(shù)據(jù),通過數(shù)據(jù)訪問層對數(shù)據(jù)庫進(jìn)行讀寫操作。


雖然在軟件設(shè)計(jì)中劃分了經(jīng)典的 3 層模型,但是對業(yè)務(wù)場景沒有劃分。一個(gè)典型的單體應(yīng)用就是將所有的業(yè)務(wù)場景的表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)


訪問層放在一個(gè)工程中,最終經(jīng)過編譯、打包,部署在一臺服務(wù)器上。


單體架構(gòu)圖如下所示:

1586490087814_單體架構(gòu).png


單體架構(gòu)的優(yōu)點(diǎn)


部署簡單: 由于是完整的結(jié)構(gòu)體,可以直接部署在一個(gè)服務(wù)器上即可。


技術(shù)單一: 項(xiàng)目不需要復(fù)雜的技術(shù)棧,往往一套熟悉的技術(shù)棧就可以完成開發(fā)。


用人成本低: 單個(gè)程序員可以完成業(yè)務(wù)接口到數(shù)據(jù)庫的整個(gè)流程。


單體架構(gòu)的缺點(diǎn)


系統(tǒng)啟動(dòng)慢, 一個(gè)進(jìn)程包含了所有的業(yè)務(wù)邏輯,涉及到的啟動(dòng)模塊過多,導(dǎo)致系統(tǒng)的啟動(dòng)、重啟時(shí)間周期過長;


系統(tǒng)錯(cuò)誤隔離性差、可用性差,任何一個(gè)模塊的錯(cuò)誤均可能造成整個(gè)系統(tǒng)的宕機(jī);


可伸縮性差:系統(tǒng)的擴(kuò)容只能只對這個(gè)應(yīng)用進(jìn)行擴(kuò)容,不能做到對某個(gè)功能點(diǎn)進(jìn)行擴(kuò)容;


線上問題修復(fù)周期長:任何一個(gè)線上問題修復(fù)需要對整個(gè)應(yīng)用系統(tǒng)進(jìn)行全面升級。


猜你喜歡:

java中級程序員學(xué)習(xí)線路圖

Spring Cloud Alibaba技術(shù)棧視頻教程

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!