💻

分散式資料庫模擬器

視覺化節點複製、CAP定理權衡和一致性傳播

💻 立即試用

什麼是分散式資料庫?

分散式資料庫將資料分佈在不同位置的多個伺服器(節點)上。CAP定理指出,你只能保證三個特性中的兩個:一致性(每次讀取都能看到最新的寫入)、可用性(每個請求都能獲得響應)和分割槽容錯性(系統在網路分裂時仍能工作)。

為什麼這很重要?從Google到Netflix,每個主要的網際網路服務都依賴分散式資料庫。理解一致性和可用性之間的權衡,對於構建服務數十億使用者的可靠、可擴充套件系統至關重要。

📖 深入了解

類比 1

想像一下一個在 5 個城市設有分公司的圖書館系統,所有分公司都共享相同的目錄。當有人在 A 分行借書時,所有其他分行都需要更新他們的記錄。如果分支 C 的電話線路發生故障(網路分區),分支 C 可能仍會顯示該書可用 — 這是一致性問題。您可以鎖定所有借貸,直到分支 C 重新連接(選擇一致性),或讓每個分支保持獨立借貸並稍後進行協調(選擇可用性)。

類比 2

想像與不同國家的朋友進行群聊。當您發送訊息時,每個人都應該以相同的順序看到它。但如果某人的網路斷線,他們就會錯過訊息,並可能回覆過時的訊息,從而產生衝突的對話串。分散式資料庫大規模地面臨這個確切的問題,並使用向量時鐘和 CRDT 等技術來解決每個人重新連接時的混亂情況。

🎯 模擬器提示

初學者

從 5 個節點和複製因子 3 開始 — 這表示每個資料都儲存在 5 個節點中的 3 個上

中級

比較寫入一致性 ALL 與 ONE — ALL 速度較慢,但保證每個副本都擁有最新數據

專家

停用向量時鐘並在分區期間觸發並發寫入,以觀察未解決的衝突

📚 術語表

CAP Theorem
布魯爾定理指出,分散式系統最多可以提供三個保證中的兩個:一致性、可用性和分割容錯性。在網路分割區期間,您必須在 C 和 A 之間進行選擇。
Replication Factor
整個集群中維護的每個資料的副本數量。複製因子為 3 表示每次寫入都儲存在 3 個不同的節點上。
Quorum
大多數副本必須確認讀取或寫入操作才能成功。對於 RF=3,仲裁數為 2。仲裁讀取與仲裁寫入相結合可保證一致性。
Consistency Level
確定在讀取或寫入被視為成功之前必須回應多少個副本。 ONE 速度最快,但可能傳回過時的資料; ALL 是最慢的,但始終一致。
Network Partition
網路通訊故障,將叢集分成兩組或多組無法相互通訊的節點,迫使在一致性和可用性之間做出選擇。
Split-Brain
一種危險情況,網路分區導致兩組節點獨立接受衝突的寫入,並相信自己是權威集群。
Vector Clock
一種追蹤分佈式節點間事件的因果順序的資料結構。每個節點維護一個邏輯計數器,比較向量時鐘可以揭示事件是否因果相關或併發。
CRDT
無衝突複製資料類型 - 一種資料結構,旨在使用交換性等數學屬性,使不同副本上的並發更新始終收斂到相同狀態,而無需協調。
Last-Write-Wins (LWW)
一種簡單的衝突解決策略,其中具有最新時間戳的寫入獲勝。易於實現,但可以默默地丟棄並發更新。
Gossip Protocol
一種點對點通訊模式,其中每個節點定期與隨機對等點交換狀態訊息,最終將更新傳播到所有節點 - 受到謠言傳播方式的啟發。
Anti-Entropy
後台修復過程,節點定期將其資料與對等節點進行比較並同步差異,即使在發生故障後也確保最終的一致性。
Merkle Tree
哈希樹資料結構,用於有效檢測副本資料之間的差異。節點首先比較根哈希,然後深入尋找並僅修復不同的特定鍵。
Tombstone
指示資料已刪除的標記。邏輯刪除必須保留一段 TTL 時間,以防止當具有舊資料的分割區節點重新加入叢集時已刪除的資料重新出現。
Eventual Consistency
一致性模型保證如果沒有進行新的更新,所有副本最終將收斂到相同的值。傳播延遲是收斂之前的時間。
Write-Ahead Log (WAL)
一種持久性技術,其中更改在應用於資料庫之前寫入順序日誌,並透過重播日誌實現崩潰復原。

🏆 關鍵人物

Eric Brewer (2000)

在加州大學柏克萊分校提出了 CAP 定理,透過證明同時保證一致性、可用性和分區容錯性的不可能性,從根本上塑造了分散式資料庫設計

Leslie Lamport (1998)

創建了 Paxos 共識演算法,並開創了分散式系統理論,其中包括邏輯時鐘、Lamport 時間戳和拜占庭將軍問題等概念

Diego Ongaro (2014)

在史丹佛大學設計了 Raft 共識演算法,使分散式共識對於 etcd 和 CockroachDB 等現實系統來說變得易於理解和實用

Werner Vogels (2007)

領導了 Amazon Dynamo 的設計,該產品引入了一致的哈希、向量時鐘和草率仲裁 — 啟發了 Cassandra、Riak 和整個 NoSQL 運動

Jeff Dean & Wilson Hsieh (2012)

共同設計了 Google Spanner,這是第一個使用 TrueTime API 和 GPS/原子鐘同步實現外部一致事務的全球分散式資料庫

Marc Shapiro (2011)

INRIA 首創的無衝突複製資料類型 (CRDT),為無協調的最終一致性提供數學基礎

🎓 學習資源

💬 給學習者的話

分散式資料庫是現代互聯網的支柱。每次您在社群媒體上發佈、播放影片或線上購買時,數十個分散式資料庫節點都會在幕後進行協調。 CAP 定理告訴我們,在網路故障的世界中,完美是不可能的,而工程就是要做出明智的權衡。您在這裡探索的概念——複製、共識、衝突解決——與Google、亞馬遜和 Netflix 的工程師每天解決的挑戰相同。了解這些基礎知識將使您深入了解數位世界的實際運作方式,並可能激勵您建立下一代彈性數據系統。

開始使用

免費,無需註冊

開始使用 →