1.1、說明
當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將傳統的單體架構應用拆分成互不相干的幾個小應用,這些小應用獨立的部署到不同的伺服器上,以提升效率。此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。
1.2、圖示1
垂直應用架構是這樣設計的:將圖中的整個兒大應用:用戶功能、訂單功能以及商品功能拆分成一個一個的小應用,而且每個的小應用都是很完整的,比如說:用戶小應用從頁面Controller,到用戶Service、再到用戶Mapper,再到資料庫都是完整的一套小系統,同時訂單功能、商品功能也是一樣。
1.3、圖示2
假設:現在的用戶小應用的訪問量特別大,那麼我們就可以將用戶小應用多複製幾份,然後分別放置在不同的伺服器上,如下圖所示:
那麼這樣做的好處在於:
分工明確,每個小團隊負責自己的小應用,各司其職。維護方便,不會說因為修改了用戶小應用而去導致整個大應用的部署。1.4、劣勢
由於對於垂直應用來說,是一整套的小系統,包括了用戶界面。這個時候會發現:我們的界面可能會經常的發生變化,那麼導致的問題就是:即便是單單的頁面變化了,業務Service沒有發生變化,也會導致整個兒的小應用的一次部署,如果這個小應用分別部署在很多臺機器上,顯然也是非常麻煩的。而我們的期望是:界面+業務邏輯是分離的,那這樣的話,頁面的改變就不會影響到我們的業務了。隨著系統的升級,隨之而來的小應用也會越來越多,那麼這麼多的小應用不可能說是每個都完全的相互獨立,小應用與小應用之間還是需要交互的。1.5、小總結
不管怎麼說,垂直應用架構要比單一架構在系統維護升級上已經先進了一步,而每個小應用之間的交互就需要之後所介紹的分布式服務架構。