網際網路分層架構的本質
出處:網際網路分層架構的本質
上圖是一個典型的網際網路分層架構:
客戶端層:典型呼叫方是browser或者APP
站點應用層:實現核心業務邏輯,從下游獲取資料,對上游返回html或者json
資料-快取層:加速訪問儲存
資料-資料庫層:固化資料儲存
如果實施了服務化,這個分層架構圖可能是這樣:
中間多了一個服務層。
同一個層次的內部,例如端上的APP,以及web-server,也都有進行MVC分層:
view層:展現
control層:邏輯
model層:資料
可以看到,每個工程師骨子裡,都潛移默化的實施著分層架構。
那麼,網際網路分層架構的本質究竟是什麼呢?
如果我們仔細思考會發現,不管是跨程式的分層架構,還是程式內的MVC分層,都是一個“資料移動”,然後“被處理”和“被呈現”的過程,歸根結底一句話:網際網路分層架構,是一個資料移動,處理,呈現的過程,其中資料移動是整個過程的核心。
如上圖所示:
資料處理和呈現要CPU計算,CPU是固定不動的:
db/service/web-server都部署在固定的叢集上
端上,不管是browser還是APP,也有固定的CPU處理
資料是移動的:
跨程式移動:資料從資料庫和快取裡,轉移到service層,到web-server層,到client層
同程式移動:資料從model層,轉移到control層,轉移到view層
資料要移動,所以有兩個東西很重要:
資料傳輸的格式
資料在各層次的形態
先看資料傳輸的格式,即協議很重要:
service與db/cache之間,二進位制協議/文字協議是資料傳輸的載體
web-server與service之間,RPC的二進位制協議是資料傳輸的載體
client和web-server之間,http協議是資料傳輸的載體
再看資料在各層次的形態,以使用者資料為例:
db層,資料是以“行”為單位存在的row(uid, name, age)
cache層,資料是以kv的形式存在的kv(uid -> User)
service層,會把row或者kv轉化為對程式友好的User物件
web-server層,會把對程式友好的User物件轉化為對http友好的json物件
client層:最終端上拿到的是json物件
結論:網際網路分層架構的本質,是資料的移動。
為什麼要說這個,這將會引出“分層架構演進”的核心原則與方法:
讓上游更高效的獲取與處理資料,複用
讓下游能遮蔽資料的獲取細節,封裝
弄清楚這個原則與方法,再加上一些經驗積累,就能回答網友經常在評論中提出的這些問題了:
是否需要引入DAO層,什麼時機引入
是否需要服務化,什麼時機服務化
是否需要抽取通用中臺業務,什麼時機抽取
是否需要前後端分離,什麼時機分離
(網友們的這些提問,其實很難回答。在不瞭解業務發展階段,業務規模,資料量併發量的情況下,妄下YES或NO的結論,本身就是不負責任的。)
更具體的分層架構演進細節,下一篇和大家細究。
總結
網際網路分層架構的本質,是資料的移動
網際網路分層架構中,資料的傳輸格式(協議)與資料在各層次的形態很重要
網際網路分層架構演進的核心原則與方法:封裝與複用
思考
哪一個系統的架構,不是“固定CPU,移動資料”,而是“固定資料,移動CPU”呢?
相關文章
- 網際網路分層架構,為啥要前後端分離?架構後端
- 網際網路動靜分離架構架構
- 網際網路理想架構架構
- 大型網際網路架構概述架構
- 分散式網際網路架構之路分散式架構
- 網際網路架構:屢試不爽的架構三馬車架構
- 『網際網路架構』軟體架構-mybatis體系結構(14)架構MyBatis
- 網際網路系統中的程式碼怎麼分層?
- 『網際網路架構』軟體架構-環境搭建maven(三)架構Maven
- 網際網路資料庫架構設計資料庫架構
- 「網際網路大廠」招聘Java架構師Java架構
- 工業網際網路平臺架構方案架構
- Java網際網路架構,如何快速搭建一個微服務架構?Java架構微服務
- 1.2網際網路的網路結構
- 網際網路高併發架構設計模式架構設計模式
- 容器、微服務和網際網路架構淺談微服務架構
- 跨境網際網路券商架構最佳實踐\n架構
- 大型網際網路系統架構是如何設計的?架構
- 網際網路專案的特點和架構目標架構
- 新手老手都懂的幹活-常用的網際網路架構模式架構模式
- 網際網路流量下的分層實驗平臺是咋做的
- 【產業網際網路】原始碼資本眼中的產業網際網路:連線賦能構建生態產業原始碼
- 網際網路架構,究竟為啥要做服務化?架構
- 網際網路架構三板斧之併發架構
- IAS2017網際網路架構峰會(實錄)架構
- 各大網際網路公司架構演進之路彙總架構
- 帶你認識網際網路架構的演變過程架構
- 工業網際網路產業聯盟:工業網際網路體系架構 2.0(附下載)產業架構
- 京東方引入SmartX超融合構建”網際網路式”IT架構架構
- 工業網際網路平臺架構方案,構建工業網際網路企業數字化、網路化、智慧化服務體系架構
- 大型網際網路公司網站架構背後的基礎技術2019網站架構
- MySQL資料庫之網際網路常用架構方案(全)MySql資料庫架構
- 大型網際網路高可用架構設計實踐2019架構
- 馬士兵Java高階網際網路架構師不加密Java架構加密
- 網際網路協議入門-通俗易懂的講計算機網路5層結構協議計算機網路
- 7000 字讀懂網際網路公司的架構演變歷程架構
- 【工業網際網路】新一代企業數字化整體架構下的工業網際網路架構
- 架構設計的本質架構