- 深入理解Spring Cloud與微服務構建(第2版)
- 方志朋
- 540字
- 2020-04-14 15:17:58
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應用服務器示意圖