分佈式概念:CAP理論

C 代表 Consistency,一致性,是指所有節點在同一時刻的數據是相同的,即更新操作執行結束並響應用戶完成後,所有節點存儲的數據會保持相同。
A 代表 Availability,可用性,是指系統提供的服務一直處於可用狀態,對於用戶的請求可即時響應。
P 代表 Partition Tolerance,分區容錯性,是指在分佈式系統遇到網絡分區的情況下,仍然可以響應用戶的請求。

網絡分區是指因爲網絡故障導致網絡不連通,不同節點分佈在不同的子網絡中,各個子網絡內網絡正常。

CAP 理論指的就是,在分佈式系統中 C、A、P 這三個特徵不能同時滿足,只能滿足其中兩個。

實際場景中,網絡環境不可能百分之百不出故障,比如網絡擁塞、網卡故障等,會導致網絡故障或不通,從而導致節點之間無法通信,或者集羣中節點被劃分爲多個分區,分區中的節點之間可通信,分區間不可通信。這種由網絡故障導致的集羣分區情況,通常被稱爲“網絡分區”

在分佈式系統中,網絡分區不可避免,因此分區容錯性 P 必須滿足
對於涉及錢的交易時,數據的一致性至關重要,因此保 CP 棄 A 應該是最佳選擇。

而對於其他場景,大多數情況下的做法是選擇 AP 而犧牲 C,因爲很多情況下不需要太強的一致性(數據始終保持一致),只要滿足最終一致性即可。最終一致性指的是,不要求集羣中節點數據每時每刻保持一致,在可接受的時間內最終能達到一致就可以了

保證 CP 的系統:有 Redis、HBase、ZooKeeper 等。

適合保證 AP 放棄 C 的場景。比如,很多查詢網站、電商系統中的商品查詢等用戶體驗非常重要,所以大多會保證系統的可用性,而犧牲一定的數據一致性。

採用保 AP 棄 C 的系統:比如 CoachDB、Eureka、Cassandra等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章