應用資料庫 中階

CAP 定理是什麼?在系統設計中如何應用?

AI 練習作答

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 評分