MIT分布式課程

為什么需要分布式

  • 通過復制(replication)實現容錯
  • CPUs/mem/disk/net的水平擴容

分布式的難點

  • 復雜。多個并發(fā)部分
  • 部分失敗問題
  • 難以實現的性能潛力

分布式領域有個著名的CAP定律

  • Consistency:一致性,需要處理部分失敗的問題。比如關系型數據庫的ACID。
  • Availability:可用性,避免單點。
  • Partition tolerance:分區(qū)容忍性,即擴展性,按需擴展。

有個說法是三者最多只能取其二。主要的矛盾點在于一致性和擴展性,因為實現按需擴展,必定會存在不一致的情況。因此分布式系統(tǒng)往往都會是CA或者是AP。最典型的的就是傳統(tǒng)關系型數據庫(CA)和NoSQL(AP)。

分布式系統(tǒng)往往會有以下幾個方面:

  • 存儲
  • 通信
  • 計算

MapReducer是一個分布式計算的編程模型

  • 計算過程分成map和reduce。Map函數不需要相互等待或者共享數據,這對并行非常友好。
  • map不保持狀態(tài),部分map失敗了,重跑可以得到一樣的結果。
  • map 的輸入來自本地磁盤,而不是網絡,中間結果也是保存在本地磁盤,而且只會網絡傳輸一次(reduce),這點提升網絡性能。
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容