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

歡迎訪問 生活随笔!

生活随笔

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

数据库

NoSQL 中的 CAP

發(fā)布時(shí)間:2023/12/14 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NoSQL 中的 CAP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、CAP概述

CAP理論 是由 EricBrewer 教授 提出的,在設(shè)計(jì)和部署分布式應(yīng)用的時(shí)候,存在三個(gè)核心的系統(tǒng)需求,這個(gè)三個(gè)需求之間存在一定的特殊關(guān)系。三個(gè)需求如下:

C: Consistency (一致性)
A: Availability (可用性)
P: Partition Tolerance (分區(qū)容錯(cuò)性)
CAP理論的核心是:一個(gè)分布式系統(tǒng)不可能同時(shí)很好的滿足 一致性,可用性和分區(qū)容錯(cuò)性這三個(gè)需求,最多只能同時(shí)較好的滿足兩個(gè)。

因此,根據(jù)CAP原理,將NoSQL數(shù)據(jù)庫分成滿足CA原則、CP原則和AP原則 三大類:
CA - 單點(diǎn)集群,滿足一致性,可用性的系統(tǒng),通常在可擴(kuò)展性上不太強(qiáng)大。 (傳統(tǒng)數(shù)據(jù)庫)
CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。 (Redis、MongoDB)
AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),通常可能對一致性要求低一些。 (大多數(shù)網(wǎng)站架構(gòu)的選擇)

2、CAP定義

(1)、Consistency 一致性

一致性又稱為原子性或者事務(wù)性。表示一個(gè)事務(wù)的操作是不可分割的,要不然這個(gè)事務(wù)完成,要不然這個(gè)事務(wù)不完成,不會出現(xiàn)這個(gè)事務(wù)完成了一半這樣的情況。這種事務(wù)的原子性使得數(shù)據(jù)具有一致性。

我們通常情況下在數(shù)據(jù)庫中存在的臟數(shù)據(jù)就屬于數(shù)據(jù)沒有具有一致性的表現(xiàn)。而在分布式系統(tǒng)中,經(jīng)常出現(xiàn)的一個(gè)數(shù)據(jù)不具有一致性的情況是讀寫數(shù)據(jù)時(shí)缺乏一致性。比如兩個(gè)節(jié)點(diǎn)數(shù)據(jù)冗余,第一個(gè)節(jié)點(diǎn)有一個(gè)寫操作,數(shù)據(jù)更新以后沒有有效的使得第二個(gè)節(jié)點(diǎn)更新數(shù)據(jù),在讀取第二個(gè)節(jié)點(diǎn)的時(shí)候就會出現(xiàn)不一致的問題出現(xiàn)。

傳統(tǒng)的ACID數(shù)據(jù)庫是很少存在一致性問題的,因?yàn)閿?shù)據(jù)的單點(diǎn)原因,數(shù)據(jù)的存取又具有良好的事務(wù)性,不會出現(xiàn)讀寫的不一致。

(2)、Availability 可用性

好的可用性主要是指系統(tǒng)能夠很好的為用戶服務(wù),不出現(xiàn)用戶操作失敗或者訪問超時(shí)等用戶體驗(yàn)不好的情況。可用性通常情況下可用性和分布式數(shù)據(jù)冗余,負(fù)載均衡等有著很大的關(guān)聯(lián)。

(3)、Partition Tolerance 分區(qū)容錯(cuò)性

分區(qū)容錯(cuò)性和擴(kuò)展性緊密相關(guān)。在分布式應(yīng)用中,可能因?yàn)橐恍┓植际降脑驅(qū)е孪到y(tǒng)無法正常運(yùn)轉(zhuǎn)。好的分區(qū)容錯(cuò)性要求能夠使應(yīng)用雖然是一個(gè)分布式系統(tǒng),而看上去卻好像是在一個(gè)可以運(yùn)轉(zhuǎn)正常的整體。比如現(xiàn)在的分布式系統(tǒng)中有某一個(gè)或者幾個(gè)機(jī)器宕掉了,其他剩下的機(jī)器還能夠正常運(yùn)轉(zhuǎn)滿足系統(tǒng)需求,這樣就具有好的分區(qū)容錯(cuò)性。

3、CAP理論的意義

隨著互聯(lián)網(wǎng)應(yīng)用的飛速發(fā)展,數(shù)據(jù)量與日俱增,傳統(tǒng)的ACID數(shù)據(jù)庫已經(jīng)不能滿足如此大的海量數(shù)據(jù)存儲了。這個(gè)時(shí)候需要設(shè)計(jì)出好的分布式數(shù)據(jù)存儲方式。而這些分布式數(shù)據(jù)存儲方式受到CAP理論的約束,不可能達(dá)到高一致性,高可用性,高分區(qū)容錯(cuò)性的完美設(shè)計(jì)。所以我們在設(shè)計(jì)的時(shí)候要懂得取舍,重點(diǎn)關(guān)注對應(yīng)用需求來說比較重要的,而放棄不重要的,在CAP這三者之間進(jìn)行取舍,設(shè)計(jì)出貼合應(yīng)用的存儲方案。

相關(guān)文章鏈接

鏈接1: link.
鏈接2: link.

總結(jié)

以上是生活随笔為你收集整理的NoSQL 中的 CAP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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