🎯 什麼情境該想到我
當你在分散式系統裡糾結「要不要強一致、可用性 vs 一致性怎麼取捨、多節點怎麼對同一件事達成一致」時。
⚙️ 怎麼用
- 線性一致性(Linearizability):讓多副本「看起來像只有一份資料」,讀到的一定是最新已寫入值。強、直覺,但成本高。
- CAP 取捨:網路分區(P)發生時,只能在一致性(C)與可用性(A)間擇一。分區無法避免 → 你在選 CP 還是 AP。
- 共識(Consensus):讓一群節點對某個值達成一致(選主、鎖、原子提交)。用 Raft/Paxos 這類演算法,或直接靠 ZooKeeper/etcd。
- 能不要強一致就別要:多數場景用因果一致性/最終一致性即可,成本低很多。
🧪 我實際套用的紀錄
- 2026-07-15:(待填)
⚠️ 注意
- 線性一致性很貴且在分區時傷可用性;先問「這個場景真的需要嗎」。
🔗 相關工具
- 工具-資料複製 —— 問題來源,有了副本才需要煩惱各節點看到的順序一不一致
- 工具-交易與隔離等級 —— 單機對照組,隔離等級解決的是單庫併發,共識解決的是跨節點共識