什麼是CAP
- Consistency(一致性)
- Availability(可用性)
- Partition Tolerance(分區容錯性)
以上三點爲分佈式系統的三個指標,這三個指標不能同時做到(在數學上經過了十分嚴謹的是證明)這就被稱爲分佈式系統的CAP理論
CAP怎麼理解
- 前提 大多數分佈式系統都分佈在多個不同的網絡中,不同的網絡稱之爲一個區
- **Partition Tolerance(分區容錯性)**在分佈式系統中的某個節點或者網絡分區出現了故障的時候,整個系統仍然能對外提供滿足一致性和可用性的服務,也就是說部分故障不影響整體使用
- Consistency(一致性) 在分佈式系統完成某寫操作後任何讀操作,所有分佈在不同子網(即,不同區)需要該數據的節點,都應該獲取到該寫操作寫入的最新的那個值,相當於要求分佈式系統中的各節點時時刻刻保持數據的一致性
- Availability(可用性) 系統能夠每時每刻,迅速並正確的響應用戶的請求
- 理解CAP 結合以上三點我們可以知道分區容錯性(P)必須保證,因爲網絡是一個極其不確定的因素(在平時生活中我們就能夠感受的到)當我們保證了分區容錯性必須成立那麼一致性(C)和可用性(A)就只能二選一了,爲什麼?結合前面所述P是必須要保證的,當我們需要保證C時就務必就要犧牲A因爲在保證C時由於網絡的不確定性,我們就必須讓在節點達成一致性之前,所有相關節點不可用,如果在達成C之前相關節點可用,那麼就不能保證C由此可知,在P必須成立的大前提下A和C只能二選一