成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為何說,MapReduce,顛覆了互聯網分層架構的本質?

開發 開發工具 架構
如果我們仔細思考會發現,不管是跨進程的分層架構,還是進程內的MVC分層,都是一個“數據移動”,然后“被處理”和“被呈現”的過程。

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

  • 客戶端層:典型調用方是瀏覽器browser或者手機APP
  • 站點應用層:實現核心業務邏輯,從下游獲取數據,對上游返回html或者json
  • 服務層:業務服務,數據服務,基礎服務,對上游提供友好的RPC接口
  • 數據緩存層:緩存加速訪問存儲
  • 數據固化層:數據庫固化數據存儲

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

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

工程師骨子里,都潛移默化的實施著分層架構設計。

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

如果我們仔細思考會發現,不管是跨進程的分層架構,還是進程內的MVC分層,都是一個“數據移動”,然后“被處理”和“被呈現”的過程。

如上圖所示:數據處理和呈現,需要CPU計算,而CPU是固定不動的:

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

而數據是移動的:

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

歸根結底一句話:互聯網分層架構,是一個CPU固定,數據移動的架構。

MapReduce的架構,是不是也遵循這個架構特點呢?

假如MapReduce也使用類似的的分層架構模式:

提前部署服務:

  • map服務層:接收輸入數據,產出“分”的數據,集群部署M=1W個實例
  • reduce服務層:接受“合”的數據,產出最終數據,集群部署R=1W個實例

當用戶提交作業時:

  • 把數據數據傳輸給map服務集群;
  • map服務集群產出結果后,把數據傳輸給reduce服務集群;
  • reduce服務集群把結果傳輸給用戶;

存在什么問題?

將有大量的時間浪費在大量數據的網絡傳輸上。

畫外音:輸入給map,map給reduce,reduce給用戶。

會發現,“固定CPU,移動數據”的架構并不適合。

Google MapReduce工程架構是如何思考這一個問題的呢?

為了減少數據量的傳輸:

(1) 輸入數據,被分割為M塊后,master會盡量將執行map函數的worker實例,啟動在輸入數據所在的服務器上;

畫外音:不需要網絡傳輸了。

(2) map函數的worker實例輸出的的結果,會被分區函數劃分成R塊,寫到worker實例所在的本地磁盤;

畫外音:不需要網絡傳輸了。

(3) reduce函數,由于有M個輸入數據源(M個map的輸出都有一部分數據可能對應到一個reduce的輸入數據),所以,master會盡量將執行reduce函數的worker實例,啟動在離這些輸入數據源盡可能“近”的服務器上;

  • 畫外音:目的也是最小化網絡傳輸;
  • 服務器之間的“近”,可以用內網IP地址的相似度衡量。

所以,對于MapReduce系統架構,“固定數據,移動CPU”更為合理。

這是為什么呢?

互聯網在線業務的特點是:

  • 總數據量大
  • 吞吐量比較大,同時發起的請求多
  • 每個請求,處理的數據相對比較小
  • 用戶對處理時延比較敏感

這類業務,使用“固定CPU,移動數據”的分層架構是合理的。

MapReduce離線業務的特點是:

  • 吞吐量比較小,同時發起的任務比較少
  • 每個任務,處理的數據量非常大
  • 用戶對處理時延容忍性大

這類業務,使用“固定數據,移動CPU”的分層架構是合理的。

任何脫離業務的架構設計,都是耍流氓。

思考問題的本質,希望大家有收獲。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-10-15 14:36:10

互聯網分層架構服務化

2020-08-11 09:43:28

分層架構互聯網架構

2023-08-27 21:02:14

2014-03-19 16:11:04

移動互聯網的顛覆和延伸

2019-04-08 11:06:07

互聯網中層高管

2015-05-11 11:06:43

統一基礎架構系統華三通信UIS

2020-09-29 07:42:34

互聯網分層架構前后端分離

2017-11-06 08:41:53

互聯網分層架構前后端

2017-10-18 14:31:34

互聯網分層架構服務化

2015-08-25 10:52:37

2020-04-29 14:44:50

互聯網5G顛覆

2020-12-31 11:01:26

互聯網數據技術

2013-01-14 14:02:11

2015-10-29 16:07:41

互聯網整合危機

2012-05-23 14:31:11

移動互聯網手機

2012-09-18 13:58:58

互聯網創業架構

2015-06-24 15:35:54

2015-05-28 16:11:07

互聯網+

2020-07-30 07:47:32

互聯網

2021-05-18 16:31:50

大數據互聯網IT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧洲精品一区 | 国产免费又黄又爽又刺激蜜月al | 久久精品久久久久久 | 中文字幕精品一区久久久久 | 九色视频网站 | 欧美一区二区久久 | 欧美一a| 91婷婷韩国欧美一区二区 | 欧美一区2区三区4区公司二百 | 午夜播放器在线观看 | 中文字幕丁香5月 | 国产精品亚洲第一区在线暖暖韩国 | 伊人精品久久久久77777 | 蜜桃av人人夜夜澡人人爽 | 国产精品99久久久久久宅男 | av电影手机版 | 激情一区二区三区 | 岛国精品 | 欧美日韩国产精品 | hitomi一区二区三区精品 | 黄色一级在线播放 | 欧美成人a∨高清免费观看 欧美日韩中 | 久在线观看 | 日日操夜夜操视频 | 中文字幕在线二区 | 中文无吗| 成人欧美一区二区三区在线观看 | 亚洲网站在线观看 | 欧美日韩在线播放 | 国产一二三区在线 | 欧美寡妇偷汉性猛交 | 亚洲精品一区二区三区在线 | 在线观看国产 | 欧美激情在线播放 | 秋霞在线一区二区 | 久久一二区| 免费在线观看av片 | 国产日韩一区二区三区 | 亚洲精品视频免费 | 成人亚洲性情网站www在线观看 | www.9191.com|