分布式系統建立在網絡之上,通過高內聚(節點高度自治)與透明性(用戶無感知遠程調用)實現軟件級別的協作。本文系統梳理計算節點分佈算法、各類一致性模型及數據一致性協議,為架構設計提供理論支撐。
任務分配策略: 採用 2^(i-1) + 節點編號 算法將計算任務映射到 15 個節點。例如任務 1→節點1,任務 2→節點2,任務 3→節點2,任務 4→節點3,任務 5→節點3,任務 8→節點4,任務 9→節點5 等。節點 1 負責任務 {2,3,5,9}。
容錯機制: 目標節點不存在或故障時,尋找最近的可用計算節點(如任務 20 路由至節點 18)。
動態擴容: 新節點加入(如節點 28)觸發鄰近任務(2、20)重新計算,通過鄰居傳播完成全網重平衡。
所有進程看到的操作順序與某種全局順序一致,且每個進程內部操作順序保持程序順序。寫入 x 後,各節點讀到 x 值後不可回溯舊值。
因果相關的操作(如 P1 連續寫 x,P2 讀後寫 x)在所有節點順序一致;無因果關係的操作允許不同節點觀察到不同順序,但需滿足順序一致性。
用戶視角的一致性:如上海用戶飛西安讀郵件,最新郵件必須與上海節點一致,歷史數據可異步加載。
跨端體驗一致:iOS/Android 微信用戶體驗無顯著差異,保證 API 契約與交互邏輯統一。
針對數據對象級別的強一致性保證,常配合分布式事務(2PC/3PC、TCC、Saga)實現。
進程讀取某數據項後,後續讀取不會返回更舊的版本。防止「時光倒流」體驗。
同一進程的寫操作按順序在所有副本上應用,保證寫入順序全局可感知。
進程寫入後,同一進程後續讀取必能看到該寫入(甚至其他進程也可見),即「寫後讀」保證。
所有進程的讀寫操作在全局呈現相同順序,最強一致性模型,實現成本最高(如 Paxos/Raft 協議)。
理解一致性模型層級與適用場景,是設計高可用、高性能分布式系統的關鍵。實際架構中常混合多種模型,按業務域差異化治理。