互聯網架構的本質
05-15
無論是單進程,還是跨進程,互聯網架構中的分層俯拾皆是。
- 客戶端層:APP或者瀏覽器
- 站點應用層:實現業務邏輯,從下游獲取數據,對上游返回html或json
- 緩存:加速查詢數據
- 資料庫:固化數據存儲
在同一層次內部,也有分層。比如APP或者web-server,也有MVC分層:
- view:展現
- control:邏輯
- model:數據
互聯網分層本質是什麼?
參考資料中作者認為是數據的流動,但我以為是結構化。因為任何架構必然存在數據的流動,而結構才是認識事物的模型,才能簡化和擴展架構。
正是在分層結構的基礎上,才能施展架構的基本方法:
- 復用:更高效獲得下游的服務
- 封裝:向上游屏蔽繁複的細節
分層結構的特點是固定的CPU和流動的數據。數據的流動就是數據傳輸的過程,這裡涉及到的問題是:
- 數據的格式(不同格式滿足存儲、計算和傳輸的需求)
- 傳輸協議
先看數據的格式:
- db:以行(row)為單位存儲
- cache:k-v對
- service:把row和k-v對轉化成對象
- web-server:把對象轉換成json(方便HTTP傳輸)
- client:拿到json
再看下數據的傳輸協議:
- db/cache和service:二進位協議,文本協議
- service和web-server:RPC的二進位協議
- web-server和client:HTTP協議
參考資料:互聯網分層架構的本質
推薦閱讀:
※推薦一篇技術乾貨,關於數據分析平台的架構與設計
※調用第三方介面的架構優化
※藍圖系列(一):高並發、高可用、高性能、分散式系統架構
※Windows Server 2008 智能 DNS Server 部署指南
TAG:系統架構 |