轉 一致性(Consistency),可用性(Avilable),分區容錯性(Tolerance of network Partition)


原博地址: https://blog.csdn.net/zhangyufeijiangxi/article/details/78286364

網絡摘抄理解:
一致性:讀操作總是能讀取到之前完成的寫操作結果,滿足這個條件的系統稱為強一致系統,這里的“之前”一般對同一個客戶端而言;
可用性:讀寫操作在單台機器發生故障的情況下仍然能夠正常執行,而不需要等待發生故障的機器重啟或者其上的服務遷移到其他機器;
分區可容忍性:機器故障、網絡故障、機房停電等異常情況下仍然能夠滿足一致性和可用性。

自己的理解:
一致性:
如下圖1中所示,Client A負責更新數據,為了保證Server 1和Server 2上的數據是一致的,Client A會將X=1的寫操作同時發給Server 1和Server 2,但是當Client A和Server 2之間發生網絡分區(網絡無法連接)時,此時如果讓write X=1的寫操作在Server 1上成功,那Client B和Client C將從Server 1和Server 2上讀取到不一致的X值;此時如果要保持X值的一致性,那么write X=1的寫操作在Server 1和Server 2上都必須失敗,這就是著名的CAP理論:在容忍網絡分區的前提下,要么犧牲數據的一致性,要么犧牲寫操作的可用性。
這里寫圖片描述
解決這個問題你可能會想到讓Client C同時讀取Server 1和Server 2上的X值和版本信息,然后取Server 1和Server 2最新版本的X值, 如下圖2所示。但Client C和Server 1之間也可能發生網絡分區,這本質上是犧牲讀可用性換取寫可用性,並沒有突破CAP理論。
這里寫圖片描述

可用性:讀寫操作在單台服務器出問題后,在其他服務器上依然能夠完成讀寫操作
重點在於:某個讀寫操作在出問題的機器上不能讀寫了,但是在其他機器可以完成

分區容錯性:單台服務器,或多台服務器出問題(主要是網絡問題)后,正常服務的服務器依然能正常提供服務,並且滿足設計好的一致性和可用性
重點在於:部分服務器因網絡問題,業務依然能夠繼續運行

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM