當討論分布式系統時,我們都會討論些什么?

jopen 8年前發布 | 12K 次閱讀 分布式

我一直在學習有關分布式系統的知識,學習時間不算短了。老實說,只要你開始鉆研分布式系統,知識點好像學不完似的,一個接一個。分布式系統領域的文獻太多了,包括許多大學發表的論文,還有很多書籍可選。像我這樣的絕對新手,很難決定應該閱讀哪些論文或者購買哪些書籍。

同時,我還發現了幾個博客作者,他們在博客中推薦這篇或者那篇論文,聲稱這是分布式系統工程師(先別糾結這個詞的含義)應該必知必會的。于是,我的閱讀列表越來越長: FLP, Zab, 時間, 分布式系統中的時鐘和事件順序Viewstamped Replication, Paxos, Chubby ,等等。問題是,很多時候他們沒有說明為什么要閱讀這篇或者那篇論文。為了滿足好奇心,不分主次地學習所有知識,這種想法我挺喜歡。不過,我們還是應該確定不同內容的閱讀優先級,畢竟,每天只有 24 小時呀。

除了有大量的論文和研究資料,分布式系統領域的書也很多。我買了挺多本。我翻看其中的章節,發現有些書的書名起得很有吸引力,貌似是我感興趣的內容,實則不然,或者說,這些書的內容并沒有涉及我想解決的問題。

在寫這篇博客的同時,我仍然在持續學習分布式系統知識,所以請讀者有點耐心,明白本文難免會存在錯誤。已經寫好的內容,以后我會盡力做相應的擴充。

在這里,我想告訴大家,我已經在好幾個會議上講過這篇博客的內容,演講稿: What We Talk About When We Talk About Distributed Systems

我在斯德哥爾摩 Erlang 用戶大會上的演講視頻: What We Talk About When We Talk About Distributed Systems

主要概念

確定分布式系統算法的分類,主要依據是搞清楚算法的各種屬性。例如,定時模型、進程間通信類型和失效模型等等。

本文涉及的主要概念包括: