在线乱码卡一卡二卡新HD,最近韩国免费观看视频,国产色无码精品视频国产,亚洲男人的天堂久久香蕉

觀焦點:CAP,能少了P?你知道嗎?
來源:Java技術指北    時間:2022-06-24 08:55:15

哈嘍,大家好,我是指北君。


(相關資料圖)

大型網站幾乎都是分布式系統,分布式系統也越來越重要,你也會發現周圍的許多事物已經是分布式理論的最佳實踐了。

前言

分布式系統(distributed system)主要有三個指標 一致性 (Consistency),可用性(Availability),分區容錯性(Partition tolerance)。

一致性是指更新操作成功后,所有節點在同一時間的數據完全一致。

可用性是指用戶訪問數據時,系統是否能正常響應時間內返回數據。

分區容錯性是指分布式系統在遇到某個節點或網絡分區故障時,仍然能夠對外提供滿足一致性和可用性的服務。

CAP理論基本可以定義為,以上的三個指標不能全部做到,即只能同時滿足CA, CP, AP。

1. 分區容錯性

分布式系統存在多個子系統,每個子系統子網絡可以叫做區。各個節點之間的數據需要同步,子系統之間也需要通信。而分區容錯指的是某個節點出現故障,而整個服務不會受到大的影響。

若一個服務為單節點服務,那么它可以說是滿足CA。

C表示任何時間點讀取的數據都是相同的,保證了一致性。

A表示只要有節點可以用,那么就可以提供服務

由于是單節點服務,那么總是滿足CA的條件。

而在分布式系統中,大多時候,單節點出問題之后,我們是需要保障整個系統都是可以使用的。所以可以認為CAP中的P總是需要成立的。

2. 一致性

一致性指的是分布式系統中所有節點在同一時間訪問時,返回數據完全一致。

從客戶端看,就是并發訪問時獲取數據的一致性。

服務端來看,就是數據節點之間的同步問題,即節點之間通過通信保持數據的實時更新。

也有對一致性分成強,弱以及最終一致性三類。

強一致性 要求數據更新后,對于其他節點,必須立馬同步,并可見。

弱一致性 可以允許在數據更新后,部分節點不能訪問到最新的數據。

最終一致性 要求一段時間內不能訪問最新數據,但是一段時間后,分布式系統的所有數據需要統一

3. 可用性

相對來說,可用性比較容易理解,就是說任何時候,我們都可以從系統中獲取數據。系統可以提供正常的用戶服務。不會出現操作失敗,訪問超時等情況

總結

由于網絡通信肯定會出現延遲丟包等問題,所以一般情況而言,分區容錯性是必須實現的。那么分布式系統會在一致性和可用性之間進行權衡, 即C和A之間的選擇。

CP without A即要求一致性,每個請求都要求服務之間保持強一致性,分區則會使同步時間無限延長,如果網絡嚴重故障,消息丟失的情況下,用戶體驗差,需要全部數據一致后才能提供訪問。比如Redis,Hbase 等就會要求數據一致性。Zookeeper 也是遵循CP原則,Leader節點掛掉之后,集群會進行選舉,選舉期間整個Follower都是不可用的,需要同步數據,所以需要Zookeeper恢復之后才可以使用。

AP without C即要求高可用而且可以分區,此時需要放棄一致性。分區節點出現故障時,為了滿足高可用,每個節點只能使用本地的數據提供訪問,避免服務中斷。這種典型的應用就是搶票等情形,前一秒還有票,當我輸入驗證碼之后再點擊,票已售罄。心里的草泥馬無限增生。Eureka是采用AP原則,犧牲一致性,達到可用性的目的。

在一致性方面做出讓步之后,有些系統會實現最終一致性,盡力保證整個系統的數據一致性。

分布式系統的一致性和可用性之間的選擇沒有固定的搭配,而需要根據不同的業務場景進行選擇,吹牛沒用,合適才行。

關鍵詞: 分布式系統 節點之間 數據一致性 出現故障 整個系統

上一篇:

下一篇:

X 關閉

X 關閉

<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>