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

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應用服務器示意圖

主站蜘蛛池模板: 芦溪县| 双鸭山市| 玛沁县| 漯河市| 内乡县| 榆中县| 武安市| 康马县| 南溪县| 灵璧县| 达拉特旗| 黄大仙区| 乌什县| 乐昌市| 安多县| 武隆县| 黑山县| 家居| 桃源县| 桃园市| 朝阳县| 宾川县| 朝阳县| 湖北省| 额敏县| 桑植县| 隆尧县| 穆棱市| 美姑县| 如皋市| 封开县| 洛川县| 大同市| 涿鹿县| 承德县| 保德县| 九台市| 伊金霍洛旗| 唐河县| 项城市| 哈密市|