分佈式系統學習 - 書籤

至關長的一段時間裏我試圖努力學習分佈式系統, 而偏偏是一旦開始深挖學習, 彷佛就沒有盡頭, 關於分佈式系統的文獻和資料很是普遍, 對初學者來講很難決定讀什麼樣的Paper, 買什麼樣的書.html

因此把相關的資料整理下, 方便你們學習.git

分佈式系統是什麼github

分佈式系統的事務處理shell

面向分佈式系統工程師的分佈式系統理論分佈式

兩階段提交ide

三階段提交性能

Log-Structured Merge Tree學習

Lamport's Paxos Made Simple動畫

Lamport's Paxos Made Livegoogle

Paxos原理與實踐

raft一致性協議

raft協議動畫展現

Amazon’s Highly Available Key-value Store

What we talk about when we talk about Distribute System

Time, Clocks, and the Ordering of Events in a Distributed System

The Chubby lock service for loosely-coupled distributed systems


分佈式系統是什麼?

分佈式多節點環境中, 如何應對單節點故障狀況, 而整個集羣能夠提供完整無損的服務.

在生產環境中一般使用兩種手段來擴展數據服務能力:

  • 數據分區 //支付寶LDC項目
  • 數據鏡像
  • 混合模式(數據分區+數據鏡像) //淘寶單元化項目

以上方案都須要考慮三種狀況:

  • 容災
  • 數據一致性
  • 性能

要想讓數據有高可用性, 就須要冗餘數據寫多份, 寫多份的問題會帶來一致性的問題, 而一致性的問題又會帶來性能問題.

Paxos協議

是一個解決分佈式系統中, 多個節點之間就某個值(提案)達成一致(決議)的通訊協議.

解決最大問題: 把不肯定性的事情變得肯定.

"你願意和我滾牀單嗎?"
"滾!"

NWR模型 (Amazon Dynamo的NWR模型)

NWR模型把CAP的選擇權交給了用戶, 讓用戶本身的選擇你的CAP中的哪兩個.

N表明N個備份, W表明要寫入至少W份才認爲成功, R表示至少讀取R個備份.

配置的時候要求W+R > N. 由於W+R > N, 因此R > N-W 這個是什麼意思呢? 就是讀取的份數必定要比總備份數減去確保寫成功的倍數的差值要大.

也就是說, 每次讀取, 都至少讀取到一個最新的版本, 從而不會讀到一份舊數據.

Dynamo引入了Vector Clock將可能的版本衝突交給用戶本身處理.

相關文章
相關標籤/搜索