現代分散式系統架構

從 CAP 定理到去中心化協定的互動式深度解析

本報告旨在深入剖析構成當代分散式系統基石的五大核心。它們並非孤立的技術,而是一套相互關聯、彼此協作的解決方案。請點擊下方卡片,開始您的探索之旅,深刻理解這些概念的運作原理與其內在的權衡取捨。

第一章:鍵值儲存 (Key-Value Store)

在探討複雜的分散式系統之前,必須先理解其最基礎的資料儲存模型。鍵值儲存 (KVS) 作為 NoSQL 資料庫家族中最簡潔的形式,為現代大規模應用提供了高效能的資料存取基礎。

KVS vs. RDBMS 權衡

KVS 的崛起並非旨在完全取代傳統 RDBMS,而是為了解決不同類型的問題。下表清晰呈現了兩者在設計哲學與架構上的根本差異與權衡取捨。

特性鍵值儲存 (KVS)關聯式資料庫 (RDBMS)
資料模型鍵與值的成對集合具有行與列的資料表
綱要 (Schema)無綱要、彈性預先定義、嚴格
擴展性水平擴展 (Scale-out)垂直擴展 (Scale-up)
一致性模型通常為最終一致性通常為強一致性

典型應用場景

基於低延遲、高吞吐量與水平擴展性的優勢,KVS 在多個領域得到了廣泛應用。點擊下方頁籤查看不同場景的說明。

將頻繁存取的資料從較慢的主資料庫 (如 RDBMS) 暫存於 KVS 中,以大幅提升應用程式的回應速度。Redis 和 Memcached 是此領域的代表性產品。

第二章:一致性雜湊

當資料量超過單一伺服器負載時,需將資料分散儲存。一致性雜湊演算法提供了在動態增減節點時,能以最小代價重新分佈資料的能力,是實現系統彈性的基石。

互動式雜湊環

傳統雜湊取模在節點變動時會導致災難性的資料遷移。一致性雜湊透過環狀結構,將影響局部化。請使用下方按鈕,觀察新增或移除節點時,資料(灰色點)遷移的變化。

藍色大點代表伺服器節點,灰色小點代表資料鍵。虛線表示受影響的資料遷移。

第三章:CAP 定理

CAP 定理是分散式運算最重要的理論基石。它指出任何分散式系統最多只能同時滿足一致性 (C)、可用性 (A) 與分割區容錯性 (P) 這三項保證中的兩項。

權衡的抉擇

在分散式系統中,網路分割區 (P) 是無法避免的。因此,當分割區發生時,您必須在一致性 (C) 與可用性 (A) 之間做出抉擇。請切換下方的「網路分割區」開關,並選擇您的系統設計策略。

網路正常 發生網路分割區!

CP 系統

若無法保證資料最新,則回傳錯誤或逾時。適合金融交易、訂單處理等不容許資料錯誤的場景。

AP 系統

回傳當前節點可存取的最新版本資料,可能為過期資料。適合社群媒體、內容分發等高可用性優先的場景。

第四章:向量時鐘

在沒有中央時鐘的系統中,確定事件的因果順序極具挑戰。向量時鐘提供了一種邏輯機制,用於追蹤事件間的因果關係,並偵測資料衝突。

因果關係模擬器

向量時鐘是一個 `[節點A計數, 節點B計數]` 陣列。請按步驟執行操作,觀察向量時鐘如何記錄事件歷史並偵測並行衝突。

操作面板

節點 A

[0, 0]

節點 B

[0, 0]

第五章:Gossip 協定

Gossip 協定(或稱流行病協定)模仿謠言的傳播方式,提供了一種去中心化、高擴展性且容錯的解決方案,用於在大型叢集中傳播狀態資訊與偵測故障。

擴展性比較:網路負載

Gossip 的網路負載約為 O(N log N),而傳統的直接監控為 O(N²)。此圖表顯示隨著節點數量增加,Gossip 在擴展性上的巨大優勢。

資訊傳播模擬

點擊「開始傳播」,觀察一個新資訊(藍色節點)如何透過隨機的點對點「閒聊」快速地擴散至整個叢集。