古詩詞大全網 - 成語故事 - 五分鐘了解壹致性的分類及其理論

五分鐘了解壹致性的分類及其理論

1、強壹致性

這種壹致性級別是最符合用戶直覺的,它要求系統寫入什麽,讀出來的也會是什麽,用戶體驗好,但實現起來往往對系統的性能影響大。

2、弱壹致性

這種壹致性級別約束了系統在寫入成功後,不承諾立即可以讀到寫入的值,也不久承諾多久之後數據能夠達到壹致,但會盡可能地保證到某個時間級別(比如秒級別)後,數據能夠達到壹致狀態。

3、最終壹致性

最終壹致性是弱壹致性的壹個特例,系統會保證在壹定時間內,能夠達到壹個數據壹致的狀態。這裏之所以將最終壹致性單獨提出來,是因為它是弱壹致性中非常推崇的壹種壹致性模型,也是業界在大型分布式系統的數據壹致性上比較推崇的模型。

分布式環境的各種問題

分布式系統體系結構從其出現之初就伴隨著諸多的難題和挑戰:

1、通信異常

從集中式向分布式演變的過程中,必然引入網絡因素,由於網絡本身的不可靠性,因此 也引入了額外的問題。分布式系統需要在各個節點之間進行網絡通信,因此每次網絡通信都會伴隨著網絡不可用的風險,網絡光纖、路由器或是DNS等硬件設備或 是系統不可用都會導致最終分布式系統無法順利完成壹次網絡通信。另外,即使分布式系統各個節點之間的網絡通信能夠正常進行,其延時也會大於單機操作。通常 我們認為現代計算機體系結構中,單機內存訪問的延時在納秒數量級(通常是10ns),而正常的壹次網絡通信的延遲在0.1~1ms左右(相當於內存訪問延 時的105倍),如此巨大的延時差別,也會影響到消息的收發過程,因此消息丟失和消息延遲變得非常普遍。

2、網絡分區

當網絡由於發生異常情況,導致分布式系統中部分節點之間的網絡延時不斷增大,最終導致組成分布式系統的所有節點中,只有部分節點之間能夠正常通信,而另壹些節點則不能----我們將這個現象稱為網絡分區。當網絡分區出現時,分布式系統會出現局部小集群,在極端情況下,這些局部小集群會獨立完成原本需要整個分布式系統才能完成的功能,包括對數據的事物處理,這就對分布式壹致性提出了非常大的挑戰。

3、三態

上面兩點,我們已經了解到在分布式環境下,網絡可能會出現各式各樣的問題,因此分布式系統的每壹次請求與響應,存在特有的三態概念,即成功、失敗、超時。 在傳統的單機系統中,應用程序在調用壹個函數之後,能夠得到壹個非常明確的響應:成功或失敗。而在分布式系統中,由於網絡是不可靠的,雖然在絕大部分情況 下,網絡通信也能夠接受到成功或失敗的響應,當時當網絡出現異常的情況下,就可能會出現超時現象,通常有以下兩種情況:

(1)由於網絡原因,該請求並沒有被成功地發送到接收方,而是在發送過程中就發生了消息丟失現象。

(2)該請求成功地被接收方接收後,進行了處理,但是在將響應反饋給發送方的過程中,發生了消息丟失現象。

當出現這樣的超時現象時,網絡通信的發起方是無法確定當前請求是否被成功處理的。

4、節點故障

節點故障則是分布式環境下另壹個比較常見的問題,指的是組成分布式系統的服務器節點出現的宕機或"僵死"現象,通常根據經驗來說,每個節點都有可能出現故障,並且每天都在發生。

CAP理論

壹個經典的分布式系統理論。CAP理論告訴我們:壹個分布式系統不可能同時滿足壹致性(C:Consistency)、可用性(A:Availability)和分區容錯性(P:Partition tolerance)這三個基本需求,最多只能同時滿足其中兩項。

BASE理論

BASE是Basically Available(基本可用)、Soft state(軟狀態)和Eventually consistent(最終壹致性)三個短語的縮寫。BASE理論是對CAP中壹致性和可用性權衡的結果,其來源於對大規模互聯網系統分布式實踐的總結, 是基於CAP定理逐步演化而來的。BASE理論的核心思想是:即使無法做到強壹致性,但每個應用都可以根據自身業務特點,采用適當的方式來使系統達到最終壹致性。