標籤:

互聯網架構的本質

無論是單進程,還是跨進程,互聯網架構中的分層俯拾皆是。

分層架構

  1. 客戶端層:APP或者瀏覽器
  2. 站點應用層:實現業務邏輯,從下游獲取數據,對上游返回html或json
  3. 緩存:加速查詢數據
  4. 資料庫:固化數據存儲

在同一層次內部,也有分層。比如APP或者web-server,也有MVC分層:

  1. view:展現
  2. control:邏輯
  3. model:數據

互聯網分層本質是什麼?

參考資料中作者認為是數據的流動,但我以為是結構化。因為任何架構必然存在數據的流動,而結構才是認識事物的模型才能簡化和擴展架構

正是在分層結構的基礎上,才能施展架構的基本方法:

  • 復用:更高效獲得下游的服務
  • 封裝:向上游屏蔽繁複的細節

分層結構的特點是固定的CPU流動的數據。數據的流動就是數據傳輸的過程,這裡涉及到的問題是:

  • 數據的格式(不同格式滿足存儲、計算和傳輸的需求
  • 傳輸協議

先看數據的格式:

  1. db:以行(row)為單位存儲
  2. cache:k-v對
  3. service:把row和k-v對轉化成對象
  4. web-server:把對象轉換成json(方便HTTP傳輸)
  5. client:拿到json

再看下數據的傳輸協議:

  1. db/cache和service:二進位協議,文本協議
  2. service和web-server:RPC的二進位協議
  3. web-server和client:HTTP協議

參考資料:互聯網分層架構的本質

推薦閱讀:

推薦一篇技術乾貨,關於數據分析平台的架構與設計
調用第三方介面的架構優化
藍圖系列(一):高並發、高可用、高性能、分散式系統架構
Windows Server 2008 智能 DNS Server 部署指南

TAG:系統架構 |