国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

深入淺出:分布式、CAP 和 BASE 理論

開發 架構
在計算機科學領域,分布式系統是一門極具挑戰性的研究方向,也是互聯網應用中必不可少的優化實踐,而 CAP 理論和 BASE 理論則是分布式系統中的兩個關鍵的概念。

1. 引言

大家好,我是小?,一個漂泊江湖多年的 985 非科班程序員,曾混跡于國企、互聯網大廠和創業公司的后臺開發攻城獅。

在計算機科學領域,分布式系統是一門極具挑戰性的研究方向,也是互聯網應用中必不可少的優化實踐,而 CAP 理論和 BASE 理論則是分布式系統中的兩個關鍵的概念。

今天,小?將帶大家深入淺出地探討這些概念,幫助大家更好地理解分布式系統的奧秘。

2. 什么是分布式系統

首先,讓我們來談談分布式系統。你可以將分布式系統想象成一個龐大的計算機網絡,由多個計算機或服務器節點組成,它們可能分布在不同的地理位置上。

圖片圖片

如圖所示,應用層的三個節點都發布在不同的城市。這些節點之間可以相互通信和協作,共同完成復雜的任務。

想象一下,你是一名團隊領導,有一項任務需要完成。如果你獨自一人完成,可能需要花費很長時間。

但如果你將任務分解成幾個子任務,分派給你的團隊成員,他們可以并行工作,更快地完成任務。這就是分布式系統的核心思想。

3 CAP理論

接下來,讓我們談談 CAP 理論,它是分布式系統設計中非常重要的一個原則。

CAP 是指在分布式系統中,Consistency(一致性)、Availability(可用性)和 Partition tolerance(分區容錯性)這三個基本原則。

C - 一致性(Consistency)

一致性意味著無論你從分布式系統的哪個節點讀取數據,你都會獲得相同的數據副本,它確保了數據的準確性。

在分布式系統中,廣泛的一致性分為三種,分別是強一致性、弱一致性和最終一致性。

強一致性

強一致性要求用戶在分布式系統中訪問數據時,不管是哪個節點的響應,數據都應該完全一致。

比如在訂單系統中球鞋庫存還剩 10 雙,張三剛買了一雙球鞋,數據更新完成后,接下來李四看到的球鞋數量就只有 9 雙,否則就可能會出現超賣的情況。

但這需要更多的時間和精力來協調,就像李四在買鞋的時候,必須排隊先等張三的購買動作結束后才可以繼續,效率較低。

弱一致性

弱一致性是指,在分布式系統中的數據被更新后,也允許讓后續的訪問拿到更新之前的老數據。

就像參加聚會一樣,每個人都有自己的鐘表。各自的鐘表時間可能會有點不一樣,但是這不影響大家聚在一起玩耍。

弱一致性提高了業務的效率,但有時會導致一些混亂,想象一下如果聚會人員的時間差太多,就會陷入長久的等待。

最終一致性

最終一致性是弱一致性的特殊形式,要求系統的數據更新完成,在一段時間以后,后續的所有訪問都能拿到最新的數據。

這就像朋友圈的消息傳播。當你發了一條消息,它不會立刻被所有朋友看到,但最終,每個人都會看到相同的消息。

一般的業務系統基于性價比的考量,絕大多數都是采用最終一致性作為分布式系統的設計思想。

而 CAP 理論里的一致性,則要求是強一致性。正如官方文檔中描述的那樣:All nodes see the same data at the same time,所有節點在同一時間內數據完全一致。

A - 可用性(Availability)

可用性意味著分布式系統的每個請求都應該得到響應,而且應該在有限的時間內完成。

可用性確保了系統的穩定性和可靠性,它描述的是系統能夠很好地為用戶服務,不會出現用戶操作失敗或者訪問超時的情況,影響用戶體驗。

即官方所說Reads and writes always succeed,服務在正常響應時間內一直可用。

P - 分區容錯性(Partition Tolerance)

分區容錯性是指系統能夠在網絡分區或通信故障的情況下繼續運行,也就是節點之間的網絡通信出現故障了,或者系統中的某一個節點出問題了,我們仍然需要保證業務系統可用。

即 The system continues to operate despite arbitrary message loss or failure of part of the system,分布式系統在遇到某個節點或者網絡分區故障時,仍然能夠對外提供滿足一致性或可用性的服務。

4. CAP 的特點

4.1 分區容錯的重要性

這時,有分布式基礎的同學可能就會問了,CAP 理論確實很重要,但是這三個特性似乎不能同時滿足,是吧?

沒錯,這就是 CAP 理論的核心觀點。

CAP 理論告訴我們,在一個分布式系統中,我們最多只能同時滿足其中 2 個特性,而無法同時滿足 3 個。

圖片圖片

為什么 C,A,P 三者不可兼得?首先,我們得知道,在分布式系統中,由于網絡不可靠,為了保證服務可以時刻對外提供服務,所以分區容錯性是一定要保證的。

試想如果只有一個分區,談分布式就沒有意義了。而多個分區,一定會有分區的故障問題,分布式系統中保證分區容錯就變成最基本的訴求了。

所以現在我們只需考慮在分區容錯的基礎上,能否同時滿足一致性和可用性,我們可以用反證法來證明。

4.2 AP Or CP

假設現在有兩個分區 P1 和 P2,分區上都有同一份數據 D1 和 D2, 現在它們是完全相同的。

圖片圖片

接下來,有一個請求 1 訪問了 P1,更改了 D1 上的數據。然后又有一個請求 2 訪問了 P2,去訪問 D2 的同一份數據。

這時,我們需要權衡。

先保證一致性

如果先保證滿足一致性和分區容錯,即 CP。

這個過程很容易出現:D1 已經更新數據,但是查詢 D2 時,數據返回的還是老數據。

為了保證 D2 和 D1 數據完全一致,必須在更新 D1 數據時給 P2 上的 D2 數據上鎖,等待 D1 更新完成后再同步更新 D2。

這個過程中,鎖住的 D2 就沒法給請求 2 實時響應,也就是違背了 P2 上的可用性。

所以在滿足一致性的前提下,CAP 無法同時滿足。

先保證可用性

如果先保證滿足可用性和分區容錯,即 AP。

可用性要求 P1 和 P2 都可以實時響應,因此在 D2 剛更新完還未同步給 D1 時,兩個 DB 的數據是不一致的,也就違背了 P1 和 P2 上的數據一致性。

所以在滿足可用性的前提下,CAP 亦無法同時滿足。

4.3 CAP 如何權衡

CAP 三者不可兼得,該怎么選擇呢?一般根據我們的業務可以有以下選擇。

滿足一致性和分區容錯CP

保證分區的強一致性(C),不要求可用(A)。

相當于請求到達某個系統之前,需要等待數據完全同步以后,才會得到系統的數據響應,一般在數據需嚴格保持一致的金融系統中會使用這種模式。

滿足可用性和分區容錯AP

保證分區的可用性(A),不要求強一致性(C)。

當請求訪問某個分區的數據時,可能拿到未同步的老數據,這種模式一般只要求數據滿足最終一致性,進而保證系統響應速度和高可用。

AP 在業界使用范圍較廣,比如著名的 BASE 理論(下文會細講)。

滿足可用和一致性AC

上文已經說過,分布式系統中無法同時保證系統的強一致性(C)和可用性(A)。

這是因為分布式系統中的分區是客觀存在無法避免的,而單體系統中的數據庫可以通過事務保證數據的一致性和可用性,比如 MySQL 中事務的四大特性(原子性、一致性、隔離性和持久性,簡稱 ACID)。

5. BASE 理論

BASE 理論是當今互聯網分布式系統的實踐總結,它的核心思想在于,既然在分布式系統中實現強一致性的代價太大,那不如退而求其次。

只需要各應用分區在提供高可用服務的基礎上,盡最大能力保證數據一致性,也就是保證數據的最終一致性。

BASE 理論是 CAP 中保證分區容錯(P)的前提下,對可用性(A)和一致性(C)的權衡,它由 Basically Available(基本可用),Soft State(軟狀態),Eventually-Consistent(最終一致性)三方面構成,簡稱 BASE 理論。

分布式系統中,CAP 理論提供了一個理論框架,而 BASE 理論則提供了一種實際操作的指導原則。

5.1 基本可用

BASE 理論認為,分布式系統在面臨故障或異常情況時,可以選擇降低性能或一致性要求,以保持基本的可用性。

這意味著系統可能會出現一些短暫的不一致性,但最終會達到一致狀態。

正如一個銀行系統的系統設計,一般有功能需求和非功能需求,我們首先需要保證核心功能需求的基本可用性。

功能需求

在銀行系統里,用戶提款、轉賬等交易模塊就是核心功能,是用戶的基本需求,不能出問題。

而非核心功能可以出現異常,但需要保證在一段時間內修復。

非功能需求

非功能需求是指用戶業務不依賴的其它需求,比如性能相關的:要求用戶轉賬在 0.5 秒內完成,但是由于網絡延遲等原因,可以延遲響應至1~2 秒。

由于系統出現此類異常,從而影響了系統的高可用性,但核心流程依然可用,即基本可用性。

5.2 軟狀態

軟狀態是指系統服務可能處于中間狀態,數據在保證一致性的過程中可能延遲同步,但不會影響系統的可用性。

比如我們在購買火車票付款結束之后,就可能處在一個既沒有完全成功,也沒有失敗的中間等待狀態。用戶需要等待系統的數據完全同步以后,才會得到是否購票成功的最終狀態。

BASE 理論認識到,在分布式系統中,狀態可能會隨時間變化而軟化,而不是立即達到一致狀態。

這意味著我們需要容忍一些狀態的不確定性,比如我們在火車票候補排隊時是不確定是否可以候補成功的。

5.3 最終一致性

最終一致性是 BASE 理論的核心思想。它指出,分布式系統可以在一段時間內保持不一致狀態,但最終會收斂到一致狀態。

它不像強一致性那樣,需要分區數據保證實時一致,導致系統數據的同步代價過高。也不像弱一致性那樣,數據更新后不保證數據一致,導致后續的請求只能訪問到老數據。

當前業界的分布式系統,甚至關系數據庫系統的數據,大都是用最終一致性實現的。比如 MySQL 的主從備份,就是在一段時間內通過 binlog 日志和監聽線程讓從庫和主庫的數據保持最終一致。

總的來說,BASE 理論其實就是犧牲了各節點數據的強一致性,允許不同節點的數據在一段時間內不一致,來獲得更高的性能和高可用性。

在單體系統中,數據庫還能通過 ACID 來實現事務的強一致性,但分布式事務需要考慮節點通信的延遲和網絡故障。

所以,BASE 理論是我們在實際的分布式系統中經常使用的方案。

責任編輯:武曉燕 來源: xin猿意碼
相關推薦

2024-03-25 14:31:45

2020-10-16 06:36:57

CapBase定理

2021-06-02 22:16:56

框架CAPBASE

2024-11-18 17:09:19

2022-03-06 23:14:56

緩存分布式系統

2021-03-11 07:27:15

CAPBASE分布式

2023-12-26 01:00:49

分布式事務TCC

2017-03-29 14:50:18

2019-11-21 10:25:28

分布式架構系統

2019-04-19 09:39:58

Redis分布式集群

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2018-01-25 19:01:47

Zookeeper分布式數據

2018-05-30 09:27:15

大數據分布式計算

2021-08-11 07:54:47

Commonjs

2017-07-02 18:04:53

塊加密算法AES算法

2019-01-07 15:29:07

HadoopYarn架構調度器

2012-05-21 10:06:26

FrameworkCocoa

2021-07-20 15:20:02

FlatBuffers阿里云Java

2022-09-26 09:01:15

語言數據JavaScript
點贊
收藏

51CTO技術棧公眾號

18黄暴禁片在线观看| 亚洲国产精品久久久久婷蜜芽| 久久精品国产久精国产| 水蜜桃色314在线观看| 日本超碰在线观看| 91白丝在线| 国产一区二区免费视频| 亚洲精品一区av在线播放| 奇米影视777在线欧美电影观看| 精品福利视频导航大全| 激情久久av一区av二区av三区| 悠悠色在线精品| 国产精品免费区二区三区观看| 九色成人搞黄网站| 综合久久给合久久狠狠狠97色| 久久精品在线免费视频| 精品久久久久久久| 7799精品视频| 四虎永久在线高清国产精品| 国产一区不卡在线| 国产伦理久久久| 亚洲成人精选| 黄页免费在线| 91久久国产综合久久91精品网站| 国产爆乳无码一区二区麻豆| 先锋影音男人资源| 波多视频一区| 久久精品国产91精品亚洲| 1204国产成人精品视频| 亚洲视频欧美视频| 中文字幕福利片| 9l国产精品久久久久麻豆| 制服丝袜综合日韩欧美| 天堂久久午夜av| 色婷婷综合久久久久| 精品亚洲成a人片在线观看| 国产精品色眯眯| 区一区二区三区中文字幕| 欧美激情理论| 欧美丰满美乳xxx高潮www| 99久久久国产精品免费调教网站| 亚洲精品在线免费播放| 东京一区二区| 日韩视频在线一区| 精品国产视频| 欧美重口另类videos人妖| 欧美一级全黄| 欧美r级在线观看| 黄色影院在线播放| 日韩电影中文字幕在线观看| 中文字幕乱码在线播放| 在线播放国产精品| 成黄免费在线| 国产精品久久福利| 69av二区| 亚洲第一福利视频在线| 日本中文字幕在线播放| 欧美成人aa大片| 丝袜久久网站| 蜜桃视频免费网站| 日本精品中文字幕| 日本一区二区乱| 亚洲人成电影网站色xx| 成人精品电影| 99久久自偷自偷国产精品不卡| 久久99国产精品免费网站| 99热免费在线观看| 精品精品欲导航| 亚洲欧美亚洲| 蜜桃视频在线播放| 欧美亚洲国产日本| 丁香激情综合五月| 天天干在线视频论坛| 91大片在线观看| 专区另类欧美日韩| 欧美美女啪啪| 欧美丰满熟妇xxxxx| 欧美日韩国产乱码电影| 久久福利影院| 狠狠热免费视频| 日韩电影大片中文字幕| 亚洲人体一区| 亚洲制服丝袜av| 国产国产一区| 91破解版在线观看| 亚洲乱码精品| 自慰无码一区二区三区| 日韩精品中文字幕在线一区| 综合中文字幕| 国产伦精品一区二区三区免| 久久日韩粉嫩一区二区三区| a级片免费在线观看| 日韩国产欧美一区| 亚洲欧美日韩精品久久亚洲区| 香蕉久久国产| 丝袜美腿一区| 超碰在线图片| 亚洲成人精品久久| 国产手机视频一区二区| 免费一级特黄录像| 欧美综合在线第二页| 尤物精品国产第一福利三区| 亚洲国产精品精华液ab| 操喷在线视频| 成人免费视频91| 久久99久久99精品免观看粉嫩| 中文字幕一区在线观看| 五月久久久综合一区二区小说| 国产视频网站在线| 一区二区精品免费视频| 久久久999成人| 婷婷综合另类小说色区| 国产成人调教视频在线观看 | 激情亚洲影院在线观看| 二个人看的毛片| 日韩中文一区| 欧美综合第一页| 日韩成人在线视频网站| 中文字幕av资源一区| 91综合精品国产丝袜长腿久久| 成人午夜剧场免费观看完整版| 亚洲自拍中文字幕| 一区二区av在线| 亚洲电影激情视频网站| 91原创在线视频| 99久久久久| 黄色成人av网站| 亚洲一区二区动漫| 日本视频在线观看一区二区三区| 国产精品久久久久久中文字| 国产原创欧美精品| 欧美二区乱c少妇| 国产精品国产精品国产专区不片| 天天综合精品| 黄瓜视频成人app免费| 日本天堂免费a| 亚洲国产精品久久精品怡红院| 欧美日产国产成人免费图片| 夜夜揉揉日日人人青青一国产精品| 韩国成人福利片在线播放| 豆花视频一区二区| 欧美成人一二区| 91小视频xxxx网站在线| 色呦呦呦在线观看| 成人性爱视频在线观看| 欧美精品a∨在线观看不卡| 99热手机在线| 中文字幕乱在线伦视频乱在线伦视频 | 日本美女高潮视频| 日本a在线免费观看| 婷婷激情四射五月天| 日本在线免费| 免费观看欧美大片| 青草影视电视剧免费播放在线观看| 男裸体无遮挡网站| 九九热精品在线播放| 中文字幕欧美日韩一区二区三区| 国产在线一区二区三区| 人人爽久久涩噜噜噜网站| 91论坛在线播放| 亚洲激情久久久| 欧美色爱综合网| 欧美浪妇xxxx高跟鞋交| 最新国产乱人伦偷精品免费网站| 成人性生交大片免费看视频在线 | 91免费的视频在线播放| 日韩av在线电影观看| 日本精品一区二区三区视频| 色噜噜狠狠一区二区| 岛国视频免费在线观看| 一级毛片免费看| 色爱综合网站| 日韩大胆人体| 国产美女作爱全过程免费视频| 手机亚洲第一页| 欧美xxxx少妇| 亚洲成人1区| 欧美88av| 欧美aaaaaa午夜精品| 美女久久一区| 美女尤物国产一区| 国产福利精品导航| 亚洲第一搞黄网站| 欧美日韩精品在线观看| 91精品福利在线一区二区三区 | 国产一区二区三区18 | 中文字幕一区二区三区乱码| 色综合av综合无码综合网站| 在线免费视频福利| 日韩色性视频| 好看的日韩av电影| 国产亚洲午夜高清国产拍精品| 欧美日韩一区二区三区 | 久久深夜福利| 精品在线播放免费| 一区二区三区在线观看动漫| 精品日本一线二线三线不卡| 欧美日韩中文一区| 少妇一晚三次一区二区三区| 99热在线观看免费|