日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理

專注于Java領(lǐng)域優(yōu)質(zhì)技術(shù)號,歡迎關(guān)注來自:小氣旋鋒
CAP定理是分布式系統(tǒng)中的一個(gè)基本定理,指出任何分布式系統(tǒng)最多可以有以下三個(gè)屬性中的兩個(gè) 。
一致性 (Consistency)可用性 (Availability)分區(qū)容錯(cuò)性 (Partition tolerance)在本文中,吉爾伯特和林奇對cap定理的說明和證明將以圖表的形式簡明扼要地加以概括 。
什么是 CAP 定理?CAP定理指出分布式系統(tǒng)不能同時(shí)具有一致性、可用性和分區(qū)容錯(cuò)性 。聽起來很簡單,但是一致性、可用性和分區(qū)容錯(cuò)是什么意思呢?分布式系統(tǒng)到底是什么意思?
本文將介紹一個(gè)簡單的分布式系統(tǒng),并說明分布式系統(tǒng)的可用性、一致性和分區(qū)容錯(cuò)性 。有關(guān)分布式系統(tǒng)和這三個(gè)屬性的正式描述,請參考Gilbert和Lynch的論文 。
分布式系統(tǒng)
讓我們考慮一個(gè)非常簡單的分布式系統(tǒng),它由兩臺服務(wù)器G1和G2組成;兩臺服務(wù)器存儲同一個(gè)變量V,V的初始值為V 0;G1和G2可以相互通信,也可以與外部客戶端通信;我們的分布式系統(tǒng)的架構(gòu)如下圖所示:

一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理


一個(gè)簡單的分布式系統(tǒng)
客戶端可以向任何服務(wù)器發(fā)送讀寫請求 。服務(wù)器收到請求后,會根據(jù)請求進(jìn)行一些計(jì)算,然后將請求結(jié)果返回給客戶端 。例如,下圖是一個(gè)寫請求的示例:
一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理


客戶端發(fā)起寫請求 。
接下來,下圖是一個(gè)讀請求的例子 。
一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理


客戶端發(fā)起讀取請求 。
現(xiàn)在我們的分布式系統(tǒng)已經(jīng)建立了,我們來回顧一下分布式系統(tǒng)的可用性、一致性和分區(qū)容錯(cuò)的意義 。
一致性
吉爾伯特和林奇在他們的論文中描述如下:
any read operation that begins after a write operation completes must return that value, or the result of a later write operation也就是說,在一致的系統(tǒng)中,客戶端向任意服務(wù)器發(fā)起寫請求,向服務(wù)器寫入一個(gè)值并得到響應(yīng),之后再向任意服務(wù)器發(fā)起讀請求,它必須讀取這個(gè)值(或者更新的值) 。
下圖是一個(gè)不一致的分布式系統(tǒng)的例子:
一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理


不一致的分布式系統(tǒng)
客戶端向G1發(fā)起寫請求,將V的值更新為v1,得到G1的確認(rèn)響應(yīng);當(dāng)向G2發(fā)起讀取v的請求時(shí),讀取舊值v0,這與預(yù)期的v1不一致 。
符合下圖的分布式系統(tǒng)示例:
一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理


一致分布式系統(tǒng)
在這個(gè)系統(tǒng)中,G1在向客戶端返回確認(rèn)響應(yīng)之前,會將V的新值復(fù)制到G2,這樣當(dāng)客戶端從G2讀取V的值時(shí),就可以讀取最新的值v1 。
可用性
吉爾伯特和林奇在他們的論文中描述如下:
every request received by a non-failing node in the system must result in a response也就是說,在一個(gè)可用的分布式系統(tǒng)中,如果一個(gè)客戶端向其中一個(gè)服務(wù)器發(fā)起請求,而服務(wù)器沒有崩潰,那么這個(gè)服務(wù)器最終必須響應(yīng)客戶端的請求 。
分區(qū)容差
吉爾伯特和林奇在他們的論文中描述如下:
the network will be allowed to lose arbitrarily many messages sent from one node to another也就是說,在服務(wù)器G1和G2之間發(fā)送的任何消息都可能丟失 。如果所有的消息都丟失了,那么我們的系統(tǒng)將如下所示:
一篇文章搞清楚什么是分布式系統(tǒng) 分布式cap工作原理

推薦閱讀