日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

分布式系统基础--CAP理论

發(fā)布時間:2023/12/14 windows 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式系统基础--CAP理论 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CAP理論(一個分布式系統(tǒng)至多只能滿足三項中的兩項)

一致性(Consistency)? ? 所有節(jié)點在同一時間訪問到的數(shù)據(jù)完全一致

可用性(Availability)? ?非故障節(jié)點對每一個請求能做出響應(yīng)

分區(qū)容錯性(Partition Tolerance)? ?當(dāng)集群中的某些結(jié)點無法聯(lián)系時仍能正常提供服務(wù)

說說一致性

一致性是因為多個數(shù)據(jù)拷貝下并發(fā)讀寫才有的問題

若從客戶端和服務(wù)端兩個不同的視角來看

  • 客戶端:一致性主要指的是數(shù)據(jù)更新后,在多并發(fā)訪問時如何獲取
  • 服務(wù)端:指更新如何分布到整個系統(tǒng),以保證數(shù)據(jù)最終一致

一致性,可以分為強/弱/最終一致性三類

從客戶端角度,多進程并發(fā)訪問時,更新過的數(shù)據(jù)在不同進程如何獲取的不同策略,決定了不同的一致性。

  • 強一致性:關(guān)系型數(shù)據(jù)庫,要求更新過的數(shù)據(jù)能被后續(xù)的訪問都能看到
  • 弱一致性:能容忍后續(xù)的部分或者全部訪問不到
  • 最終一致性:經(jīng)過一段時間后要求能訪問到更新后的數(shù)據(jù)

CAP的證明

上圖是證明CAP的基本場景,網(wǎng)絡(luò)中有兩個節(jié)點N1和N2,他們之間網(wǎng)絡(luò)可以連通,N1、N2中均有一個應(yīng)用程序A/B,和一個數(shù)據(jù)庫V。兩個V0是分布式系統(tǒng)的數(shù)據(jù)存儲的兩個子數(shù)據(jù)庫

在滿足一致性的時候,N1和N2中的數(shù)據(jù)是一樣的,V0=V0

在滿足可用性的時候,用戶不管是請求N1或者N2,都會得到立即響應(yīng)

在滿足分區(qū)容錯性的情況下,N1和N2有任何一方宕機,或者網(wǎng)絡(luò)不通的時候,都不會影響N1和N2彼此之間的正常運作

如上圖,分布式系統(tǒng)正常運轉(zhuǎn)下,用戶向N1機器請求數(shù)據(jù)更新,程序A更新數(shù)據(jù)庫V0為V1,分布式系統(tǒng)將數(shù)據(jù)進行同步操作M,將V1同步到N2中的V0,使得N2中的數(shù)據(jù)V0也更新為V1,N2此時響應(yīng)讀數(shù)據(jù)請求則與N1中一致

?

現(xiàn)在假設(shè)一種極端情況,N1和N2之間的網(wǎng)絡(luò)斷開了,分布式系統(tǒng)要支持這種網(wǎng)絡(luò)異常相當(dāng)于要滿足分區(qū)容錯性,能不能同時滿足一致性和響應(yīng)性呢?

假設(shè)在N1和N2之間網(wǎng)絡(luò)斷開的時候,有用戶向N1發(fā)送寫數(shù)據(jù)請求,那N1中的數(shù)據(jù)V0將被更新為V1,由于網(wǎng)絡(luò)斷開,分布式系統(tǒng)無法同步操作M,故N2中的數(shù)據(jù)依舊是V0

此時,有用戶向N2發(fā)送讀數(shù)據(jù)請求,由于數(shù)據(jù)還沒有進行同步,應(yīng)用程序沒辦法立即給用戶返回最新的數(shù)據(jù)V1,怎么辦呢?有二種選擇:

第一,犧牲一致性,響應(yīng)舊的數(shù)據(jù)V0給用戶

第二,犧牲可用性,阻塞等待,直到網(wǎng)絡(luò)連接恢復(fù),數(shù)據(jù)更新操作M完成之后,再給用戶響應(yīng)最新的數(shù)據(jù)V1

這個過程,證明了要滿足分區(qū)容錯性的分布式系統(tǒng),只能在一致性和可用性兩者中,選擇其中一個

CAP權(quán)衡

CA without P:舍棄P(不允許分區(qū)容錯),則C(強一致性)和A(可用性)是可以保證的。但其實分區(qū)不是想不想的問題,而是始終會存在,因此CA的系統(tǒng)更多的是允許分區(qū)后各子系統(tǒng)依然保持CA

CP without A:舍棄A(可用性),相當(dāng)于每個請求都需要在Server之間強一致,而P(分區(qū))會導(dǎo)致同步時間無限延長。很多傳統(tǒng)的數(shù)據(jù)庫分布式事務(wù)都屬于這種模式
AP wihtout C:舍棄C(一致性),要高可用并允許分區(qū),一旦分區(qū)發(fā)生,節(jié)點之間可能會失去聯(lián)系,為了高可用,每個節(jié)點只能用本地數(shù)據(jù)提供服務(wù),而這樣會導(dǎo)致全局數(shù)據(jù)的不一致性,現(xiàn)在眾多的NoSQL都屬于此類

高可用性:指系統(tǒng)無中斷地執(zhí)行其功能的能力,代表系統(tǒng)的可用性程度

其度量方式,是根據(jù)系統(tǒng)損害、無法使用的時間,以及由無法運作恢復(fù)到可運作狀況的時間,與系統(tǒng)總運作時間的比較。計算公式為:?

A(可用性),MTBF(平均故障間隔),MDT(平均修復(fù)時間)

在線系統(tǒng)和執(zhí)行關(guān)鍵任務(wù)的系統(tǒng)通常要求其可用性要達到5個9標準(99.999%)---年故障時間為5分15秒

總結(jié)

以上是生活随笔為你收集整理的分布式系统基础--CAP理论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。