欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:分布式理論基礎

柚子快報邀請碼778899分享:分布式理論基礎

http://yzkb.51969.com/

文章目錄

1、理論基礎2、CAP定理1_一致性2_可用性3_分區(qū)容錯性4_總結

3、BASE理論1_Basically Available(基本可用)2_Soft State(軟狀態(tài))3_Eventually Consistent(最終一致性)4_總結

1、理論基礎

在計算機科學領域,分布式一致性是一個相當重要的問題。

分布式系統(tǒng)要解決的一個重要問題是數(shù)據(jù)復制。

數(shù)據(jù)復制為分布式系統(tǒng)帶來了高可用、高性能,但也同時帶來了分布式一致性挑戰(zhàn):在對一個副本數(shù)據(jù)進行更新時,必須確保也更新其他副本,否則不同副本的數(shù)據(jù)將不一致。

如何解決這個問題 ?

一種思路是:阻塞 “寫” 操作,直到數(shù)據(jù)復制完成。

但這個思路在解決一致性問題的同時,又帶來了 “寫” 操作性能低的問題。

如果有高并發(fā)的 “寫” 請求,則在使用這個思路之后,大量 “寫” 請求阻塞,導致系統(tǒng)整體性能急劇下降。

如何既保證數(shù)據(jù)的一致性,又不影響系統(tǒng)運行的性能,是每一個分布式系統(tǒng)都需要重點考慮和權衡的問題。

如何實現(xiàn)一種既能保證ACID特性,又能保證高性能的分布式事務處理系統(tǒng)是一個世界性難題。

在技術演進過程中,出現(xiàn)了諸如CAP和BASE 這樣的分布式系統(tǒng)理論。

2、CAP定理

1998年,加州大學的計算機科學家 Eric Brewer 提出,分布式系統(tǒng)有三個指標。

Consistency(一致性)Availability(可用性)Partition tolerance (分區(qū)容錯性)

它們的第一個字母分別是 C、A、P。

Eric Brewer 說,這三個指標不可能同時做到,這個結論就叫做 CAP 定理。

CAP定理是分布式系統(tǒng)的指導理論,它指出:一個分布式系統(tǒng)不可能同時滿足 一致性(C: Consistency)、可用性(A: Availability) 和 分區(qū)容錯性(P: PartitionTolerance) 這3個需求,最多只能同時滿足其中兩項。

1_一致性

Consistency (一致性):指 "all nodes see the same data at the same time",即更新操作成功并返回客戶端后,所有節(jié)點在同一時間的數(shù)據(jù)完全一致,這就是分布式的一致性。

一致性的問題在并發(fā)系統(tǒng)中不可避免,對于客戶端來說,一致性指的是并發(fā)訪問時更新過的數(shù)據(jù)如何獲取的問題。

從服務端來看,則是更新如何復制分布到整個系統(tǒng),以保證數(shù)據(jù)最終一致。

這里的一致性是指強一致性,一般關系型數(shù)據(jù)庫就具有強-致性特性。

2_可用性

Availability (可用性):指 "Reads and writes always succeed",即服務一直可用,而且是正常響應時間。

好的可用性主要是指系統(tǒng)能夠很好的為用戶服務,不出現(xiàn)用戶操作失敗或者訪問超時等用戶體驗不好的情況。

3_分區(qū)容錯性

Partition Tolerance (分區(qū)容錯性):指 "the system continues to operate despite arbitrary message loss or failure of part of the system",即分布式系統(tǒng)在遇到某節(jié)點或網絡分區(qū)故障的時候,仍然能夠對外提供滿足一致性和可用性的服務。

分區(qū)容錯性要求能夠使應用雖然是一個分布式系統(tǒng),而看上去卻好像是在一個可以運轉正常的整體。

比如現(xiàn)在的分布式系統(tǒng)中有某一個或者幾個機器宕掉或失聯(lián)了,其他剩下的機器還能夠正常運轉滿足系統(tǒng)需求,對于用戶而言并沒有什么體驗上的影響。

因為分布式系統(tǒng)無法同時滿足一致性、可用性、分區(qū)容錯性這3個基本需求,所以我們在設計分布式系統(tǒng)時就必須有所取舍。

對于分布式系統(tǒng)而言,分區(qū)容錯性是最基本的要求,因為既然是一個分布式系統(tǒng),那么分布式系統(tǒng)中的組件必然會被部署到不同的節(jié)點,否則也就無所謂分布式系統(tǒng)了,因此必然會出現(xiàn)子網絡。

而對于分布式系統(tǒng)而言,網絡又必定會出現(xiàn)異常情況因此,分區(qū)容錯性就成為了分布式系統(tǒng)必然需要面對和解決的問題。

4_總結

在分布式系統(tǒng)中,系統(tǒng)間的網絡不能100%保證健康,一定會有故障的時候,而服務有必須對外保證服務。因此Partition Tolerance 不可避免。

當節(jié)點接收到新的數(shù)據(jù)變更時,就會出現(xiàn)問題了:

如果此時要保證一致性,就必須等待網絡恢復,完成數(shù)據(jù)同步后,整個集群才對外提供服務,服務處于阻塞狀態(tài),不可用。

如果此時要保證可用性,就不能等待網絡恢復,那 node01、node02 與 node03 之間就會出現(xiàn)數(shù)據(jù)不一致。

也就是說,在P一定會出現(xiàn)的情況下,A和C之間只能實現(xiàn)一個。

CP without A,即實現(xiàn)一致性和分區(qū)容錯性。

此組合為數(shù)據(jù)強一致性模式,即要求在多服務之間數(shù)據(jù)一定要一致,弱化了可用性。 一些對數(shù)據(jù)要求比較高的場景(比如金融業(yè)務等)使用此模式,這種模式性能偏低。 常用方案有 XA 兩階段提交、Seata AT 模式的“讀已提交”級別等。

AP without C,即實現(xiàn)可用性和分區(qū)容錯性。

此組合為數(shù)據(jù)最終一致性模式,即要求所有服務都可用,弱化了一致性。 互聯(lián)網分布式服務多數(shù)基于AP,這種模式性能高,可以滿足高并發(fā)的業(yè)務需求。 常用方案有TCC、基于消息的最終一致性、Saga等。

CA without P,即實現(xiàn)一致性和可用性:

如果不要求P(不允許分區(qū)),則C(強一致性)和A(可用性)是可以保證的。 但放棄P的同時也就意味著放棄了系統(tǒng)的擴展性,也就是分布式節(jié)點受限,沒辦法部署子節(jié)點,這是違背分布式系統(tǒng)設計的初衷的。

系統(tǒng)架構師往往需要把精力花在如何根據(jù)業(yè)務特點在 C(一致性) 和 A(可用性) 之間做選擇,即選擇 CP 還是 AP。

3、BASE理論

BASE是 Basically Available(基本可用)、Soft State(軟狀態(tài)) 和 EventuallyConsistency(最終一致性) 這3個短語的縮寫。

BASE理論是對CAP中的一致性及可用性進行權衡的結果,其核心思想是:無法做到強一致性,那么可以通過犧牲強一致性來獲得可用性。

BASE理論是對CAP的一種解決思路,包含三個思想:

1_Basically Available(基本可用)

基本可用是對 A(可用性) 的一個妥協(xié),即在分布式系統(tǒng)出現(xiàn)不可預知故障時,允許損失部分可用性。比如在秒殺場景和雪崩的業(yè)務場景下進行降級處理,使核心功能可用,而不是所有的功能可用。

分布式系統(tǒng)在出現(xiàn)故障時,允許損失部分可用性,即保證核心可用。

2_Soft State(軟狀態(tài))

軟狀態(tài)是相對于原子性而言的。

要求多個節(jié)點的數(shù)據(jù)副本是一致的,這是一種“硬狀態(tài)”。

“軟狀態(tài)” 指的是:允許系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài),并認為該狀態(tài)不影響系統(tǒng)的整體可用性,即允許系統(tǒng)在多個不同節(jié)點的數(shù)據(jù)副本上存在數(shù)據(jù)延時。

在一定時間內,允許出現(xiàn)中間狀態(tài),比如臨時的不一致狀態(tài)。

3_Eventually Consistent(最終一致性)

不可能一直是 “軟狀態(tài)” ,必須有個時間期限。

在時間期限過后,應當保證所有副本保持數(shù)據(jù)一致性,從而達到數(shù)據(jù)的最終一致性。

這個時間期限取決于網絡延時、系統(tǒng)負載、數(shù)據(jù)復制方案設計等因素。

雖然無法保證強一致性,但是在軟狀態(tài)結束后,最終達到數(shù)據(jù)一致。

不只是分布式系統(tǒng)使用最終一致性,關系型數(shù)據(jù)庫在某個功能上也使用最終一致性。

比如在備份時,數(shù)據(jù)庫的復制過程是需要時間的,在這個復制過程中,業(yè)務讀取的值就是“舊”的。

當然,最終還是達到了數(shù)據(jù)一致性。

4_總結

總體來說,BASE 理論面向的是大型高可用、可擴展的分布式系統(tǒng)。

不同于 ACID,BASE 理論提出通過犧牲強一致性來獲得可用性,并允許在一定時間內的不一致,但是最終達到一致。

在實際的分布式場景中,不同業(yè)務對數(shù)據(jù)的一致性要求不一樣。因此在設計時,往往結合使用 ACID 和 BASE 理論。

柚子快報邀請碼778899分享:分布式理論基礎

http://yzkb.51969.com/

精彩鏈接

評論可見,查看隱藏內容

本文內容根據(jù)網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19583369.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄