国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)管 > 網(wǎng)絡(luò)管理 > 正文

分布式系統(tǒng)的CAP原理

2023-05-24 11:59:19
字體:
供稿:網(wǎng)友

CAP原理認(rèn)為,一個提供數(shù)據(jù)服務(wù)的存儲系統(tǒng)無法同時滿足數(shù)據(jù)一致性、數(shù)據(jù)可用性,分區(qū)耐受性(系統(tǒng)具有網(wǎng)絡(luò)分區(qū)的伸縮性)這三個條件。

一致性是指更新操作成功后,所有節(jié)點(diǎn)在同一時間的數(shù)據(jù)完全一致。

可用性是指用戶訪問數(shù)據(jù)時,系統(tǒng)是否能正常響應(yīng)時間內(nèi)返回?cái)?shù)據(jù)。

分區(qū)容錯性是指分布式系統(tǒng)在遇到某個節(jié)點(diǎn)或網(wǎng)絡(luò)分區(qū)故障時,仍然能夠?qū)ν馓峁M足一致性和可用性的服務(wù)。

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

CAP理論

1. 分區(qū)容錯性

分布式系統(tǒng)存在多個子系統(tǒng),每個子系統(tǒng)子網(wǎng)絡(luò)可以叫做區(qū)。各個節(jié)點(diǎn)之間的數(shù)據(jù)需要同步,子系統(tǒng)之間也需要通信。而分區(qū)容錯指的是某個節(jié)點(diǎn)出現(xiàn)故障,而整個服務(wù)不會受到大的影響。

若一個服務(wù)為單節(jié)點(diǎn)服務(wù),那么它可以說是滿足CA。

C表示任何時間點(diǎn)讀取的數(shù)據(jù)都是相同的,保證了一致性。

A表示只要有節(jié)點(diǎn)可以用,那么就可以提供服務(wù)

由于是單節(jié)點(diǎn)服務(wù),那么總是滿足CA的條件。

而在分布式系統(tǒng)中,大多時候,單節(jié)點(diǎn)出問題之后,我們是需要保障整個系統(tǒng)都是可以使用的。所以可以認(rèn)為CAP中的P總是需要成立的。

2. 一致性

一致性指的是分布式系統(tǒng)中所有節(jié)點(diǎn)在同一時間訪問時,返回?cái)?shù)據(jù)完全一致。

從客戶端看,就是并發(fā)訪問時獲取數(shù)據(jù)的一致性。

服務(wù)端來看,就是數(shù)據(jù)節(jié)點(diǎn)之間的同步問題,即節(jié)點(diǎn)之間通過通信保持?jǐn)?shù)據(jù)的實(shí)時更新。

也有對一致性分成強(qiáng),弱以及最終一致性三類。

強(qiáng)一致性 要求數(shù)據(jù)更新后,對于其他節(jié)點(diǎn),必須立馬同步,并可見。

弱一致性 可以允許在數(shù)據(jù)更新后,部分節(jié)點(diǎn)不能訪問到最新的數(shù)據(jù)。

最終一致性 要求一段時間內(nèi)不能訪問最新數(shù)據(jù),但是一段時間后,分布式系統(tǒng)的所有數(shù)據(jù)需要統(tǒng)一

3. 可用性

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

CA without P

如果不要求 Partition Tolerance,即不允許分區(qū),則強(qiáng)一致性和可用性是可以保證的。其實(shí)分區(qū)是始終存在的問題,因此 CA 的分布式系統(tǒng)更多的是允許分區(qū)后各子系統(tǒng)依然保持 CA。

CP without A

如果不要求可用性,相當(dāng)于每個請求都需要在各服務(wù)器之間強(qiáng)一致,而分區(qū)容錯性會導(dǎo)致同步時間無限延長,如此 CP 也是可以保證的。很多傳統(tǒng)的數(shù)據(jù)庫分布式事務(wù)都屬于這種模式。

AP without C

如果要可用性高并允許分區(qū),則需放棄一致性。一旦分區(qū)發(fā)生,節(jié)點(diǎn)之間可能會失去聯(lián)系,為了實(shí)現(xiàn)高可用,每個節(jié)點(diǎn)只能用本地?cái)?shù)據(jù)提供服務(wù),而這樣會導(dǎo)致全局?jǐn)?shù)據(jù)的不一致性。

為什么沒辦法同時達(dá)到CAP呢?

CAP是沒辦法同時達(dá)到的,要么是CP,要么是CA,要么是AP,是不可能存在CAP的,因?yàn)槿缦拢杭偃绶植际角闆r下數(shù)據(jù)庫1和數(shù)據(jù)庫2,用戶上傳一張圖片必須同時同步成功才滿足一致性(Consistency),并且用戶可以看到信息也滿足了(可用性),當(dāng)突發(fā)場景數(shù)據(jù)庫1和數(shù)據(jù)庫2突然間因?yàn)榫W(wǎng)絡(luò)斷電原因,某一個直接宕機(jī),那還有另外一個數(shù)據(jù)庫可以提供分區(qū)容錯性,但是這時候已經(jīng)無法滿足一致性了,所以這種沒辦法實(shí)現(xiàn)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 普兰店市| 抚远县| 兴国县| 达州市| 侯马市| 浏阳市| 英德市| 邯郸县| 禄丰县| 家居| 西乡县| 揭阳市| 弥勒县| 布尔津县| 洛隆县| 通城县| 阳谷县| 民勤县| 克什克腾旗| 嘉禾县| 名山县| 新建县| 仙游县| 揭东县| 西乌珠穆沁旗| 葫芦岛市| 泾源县| 巫山县| 淳安县| 西藏| 长汀县| 和林格尔县| 海原县| 德州市| 根河市| 建始县| 淅川县| 西藏| 常山县| 广水市| 廊坊市|