應用資料庫 中階
CAP 定理是什麼?在系統設計中如何應用?
CAP 定理
三個屬性
在分散式系統中,最多只能同時保證以下三者中的兩個:
- C — Consistency(一致性):所有節點在同一時間看到相同的資料
- A — Availability(可用性):每個請求都能收到回應(不保證是最新資料)
- P — Partition Tolerance(分區容錯):即使網路分區(節點無法通訊),系統仍能運作
為何必須選 P?
在真實分散式系統中,網路分區是無法避免的(網路故障是常態)。 因此實際選擇是 CP vs AP。
CP 系統(一致性 + 分區容錯)
- 網路分區時拒絕服務,保證資料一致
- 例:HBase、ZooKeeper、傳統 RDBMS
AP 系統(可用性 + 分區容錯)
- 網路分區時仍回應(可能返回舊資料),最終一致性
- 例:Cassandra、CouchDB、DynamoDB
延伸:PACELC 定理
CAP 只考慮分區時的取捨,PACELC 更完整:
- 有分區:A vs C
- 無分區(正常運作):延遲(Latency)vs 一致性(Consistency)
面試加分:MongoDB 在不同配置下可以是 CP(primary only reads)或 AP(允許讀取 secondary 的舊資料)。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
