官术网_书友最值得收藏!

1.1 單體架構及其存在的不足

1.1.1 單體架構簡介

在軟件設計中,經常提及和使用經典的3層模型,即表示層、業務邏輯層和數據訪問層。

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

?業務邏輯層:即業務邏輯處理層,例如用戶輸入的信息要經過業務邏輯層的處理后,才能展現給用戶。

?數據訪問層:用于操作數據庫,用戶在表示層會產生大量的數據,通過數據訪問層對數據庫進行讀寫操作。

雖然在軟件設計中劃分了經典的3層模型,但是對業務場景沒有劃分。一個典型的單體應用就是將所有的業務場景的表示層、業務邏輯層和數據訪問層放在一個工程中,最終經過編譯、打包,部署在一臺服務器上。例如,典型的J2EE工程是將表示層的JSP、業務邏輯層的Service、Controller和數據訪問層的Dao,打成war包,部署在Tomcat、Jetty或者其他Servlet容器中運行。經典的單體應用如圖1-1所示。

▲圖1-1 經典的單體應用架構

在一個小型應用的初始階段,訪問量較小,應用只需要一臺服務器就能夠部署所有的資源,例如將應用程序、數據庫、文件資源等部署在同一臺服務器上。最典型的就是LAMP系統,即服務器采用Linux系統,開發應用程序的語言為PHP,部署在Apache服務器上,采用MySQL數據庫。在應用程序的初始階段,采用這種架構的性價比是非常高的,開發速度快,開發成本低,只需要一臺廉價的服務器。此時的服務器架構如圖1-2所示。

▲圖1-2 LAMP應用服務器示意圖

主站蜘蛛池模板: 丹寨县| 绩溪县| 壤塘县| 长垣县| 阳泉市| 西平县| 额尔古纳市| 墨江| 遂昌县| 西乡县| 根河市| 高碑店市| 资兴市| 唐河县| 锦州市| 余姚市| 凤山县| 龙口市| 若羌县| 安化县| 射阳县| 铜川市| 讷河市| 澎湖县| 铁力市| 高唐县| 阿拉尔市| 新建县| 云和县| 休宁县| 德惠市| 双柏县| 青铜峡市| 伊金霍洛旗| 长岭县| 镇坪县| 延安市| 南岸区| 河间市| 西乡县| 玉环县|