互聯網分層架構的本質

簡介: 哪一個系統的架構,不是“固定CPU,移動數據”,而是“固定數據,移動CPU”呢?

image.png

上圖是一個典型的互聯網分層架構:

  • 客戶端層:典型調用方是browser或者APP
  • 站點應用層:實現核心業務邏輯,從下游獲取數據,對上游返回html或者json
  • 數據-緩存層:加速訪問存儲
  • 數據-數據庫層:固化數據存儲

如果實施了服務化,這個分層架構圖可能是這樣:

image.png

中間多了一個服務層。

image.png

同一個層次的內部,例如端上的APP,以及web-server,也都有進行MVC分層:

  • view層:展現
  • control層:邏輯
  • model層:數據

可以看到,每個工程師骨子裏,都潛移默化的實施着分層架構。

那麼,互聯網分層架構的本質究竟是什麼呢?

如果我們仔細思考會發現,不管是跨進程的分層架構,還是進程內的MVC分層,都是一個“數據移動”,然後“被處理”和“被呈現”的過程,歸根結底一句話:互聯網分層架構,是一個數據移動,處理,呈現的過程,其中數據移動是整個過程的核心。

image.png

如上圖所示:

數據處理和呈現要CPU計算,CPU是固定不動的:

  • db/service/web-server都部署在固定的集羣上
  • 端上,不管是browser還是APP,也有固定的CPU處理

數據是移動的:

  • 跨進程移動:數據從數據庫和緩存裏,轉移到service層,到web-server層,到client層
  • 同進程移動:數據從model層,轉移到control層,轉移到view層

想看完整文章內容:點擊這裏

原文出處:阿里雲大學開發者社區

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章