成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java分布式一致性原理是什么

本篇內(nèi)容介紹了“java分布式一致性原理是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

十載的榆林網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整榆林建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“榆林網(wǎng)站設(shè)計(jì)”,“榆林網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一、概述

分布式系統(tǒng)是一個(gè)硬件或者軟件組件分布在不同的網(wǎng)絡(luò)計(jì)算機(jī)上,彼此之間僅僅通過消息傳遞進(jìn)行通信和協(xié)調(diào)的系統(tǒng)。

二、分布式系統(tǒng)的特點(diǎn)

分布性分布式系統(tǒng)中的多臺(tái)計(jì)算機(jī)都會(huì)在空間上隨意分布,同時(shí),機(jī)器的分布情況也會(huì)隨時(shí)變動(dòng)。 對(duì)等性分布式系統(tǒng)中的計(jì)算機(jī)沒有主從之分,組成分布式系統(tǒng)的所有計(jì)算機(jī)節(jié)點(diǎn)都是對(duì)等的。副本是分布式系統(tǒng)最常見的概念之一,指的是分布式系統(tǒng)對(duì)數(shù)據(jù)和服務(wù)提供的一種冗余方式。 并發(fā)性在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中,程序運(yùn)行中的并發(fā)操作是常見的,可能會(huì)并發(fā)操作一些共享資源,如數(shù)據(jù)庫(kù)或者分布式存儲(chǔ)等,如何高效的協(xié)調(diào)分布式并發(fā)操作也是分布式系統(tǒng)架構(gòu)與設(shè)計(jì)中最大挑戰(zhàn)之一。 缺乏全局時(shí)鐘因?yàn)榉植际较到y(tǒng)是由一系列在空間上隨意分布的多個(gè)進(jìn)程組成的,具有明顯的分布性,這些進(jìn)程之間通過交換消息來(lái)通信。因?yàn)槿狈θ謺r(shí)鐘,因此很難界定兩個(gè)事件發(fā)生的先后順序。所以在設(shè)計(jì)階段考慮的異常情況,一定會(huì)在系統(tǒng)實(shí)際運(yùn)行中發(fā)生,并且,在系統(tǒng)運(yùn)行過程中還會(huì)遇到很多在設(shè)計(jì)時(shí)未能考慮到的異常故障,所以在系統(tǒng)設(shè)計(jì)中不要放過任何異常情況。

三、分布式系統(tǒng)中常見的問題

通信異常分布式系統(tǒng)需要在各個(gè)節(jié)點(diǎn)之間進(jìn)行通信,因此每次網(wǎng)絡(luò)通信都會(huì)伴隨著網(wǎng)絡(luò)不可用的風(fēng)險(xiǎn)(光纖、路由、DNS等硬件設(shè)備的不可用)。 網(wǎng)絡(luò)分區(qū)由于網(wǎng)絡(luò)發(fā)生異常情況,導(dǎo)致分布式系統(tǒng)中部分節(jié)點(diǎn)之間的網(wǎng)絡(luò)延遲不斷增大,最終導(dǎo)致組成分布式系統(tǒng)中只有部分節(jié)點(diǎn)能夠進(jìn)行正常通信,這種情況為網(wǎng)絡(luò)分區(qū),俗稱“腦裂”。當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)時(shí),分布式系統(tǒng)就會(huì)出現(xiàn)局部小集群,在極端情況下,這些小集群會(huì)獨(dú)立完成原本需要整個(gè)分布式系統(tǒng)才能完成的功能,包括數(shù)據(jù)的事務(wù)處理,這就對(duì)分布式一致性提出非常大的挑戰(zhàn)。 三態(tài)因?yàn)榫W(wǎng)絡(luò)的問題,所以分布式系統(tǒng)每次請(qǐng)求與響應(yīng)存在特有的“三態(tài)”概念,即成功、失敗和超時(shí)。由于網(wǎng)絡(luò)部可靠性,雖然絕大部分情況下,網(wǎng)絡(luò)通信能夠接受到成功失敗響應(yīng),但網(wǎng)絡(luò)異常下,就會(huì)出現(xiàn)超時(shí)現(xiàn)象,通常有以下兩種情況:

  1. 由于網(wǎng)絡(luò)原因,請(qǐng)求并沒有被成功的發(fā)送到接收方,而是在發(fā)送過程就發(fā)生了丟失現(xiàn)象。

  2. 該請(qǐng)求成功的被接收方處理后,但在響應(yīng)反饋給發(fā)送方過程中,發(fā)生丟失現(xiàn)場(chǎng)。

四、分布式事物

對(duì)于分布式事物想必大家都是耳熟能詳?shù)模吘顾械姆植际较到y(tǒng)都會(huì)遇到這個(gè)問題。一般一個(gè)分布式事物可以看作是由多個(gè)分布式的操作序列組成的,通常把這一系列分布式的操作成為子事物。因此,分布式事物也可以被定義為一種嵌套型的事物,同時(shí)也就具備了ACID的事物特性。但是由于分布式事物中,各個(gè)子系統(tǒng)事物的執(zhí)行是分布式的,因此要實(shí)現(xiàn)一種能夠保證ACID特性的分布式事務(wù)處理系統(tǒng)就格外的復(fù)雜了。所以就出現(xiàn)了諸如CAP和BASE這樣的分布式經(jīng)典理論。 ##CAP CAP理論告訴我們,一個(gè)分布式系統(tǒng)不可能同時(shí)滿足一致性(c:consistency)、可用性(A:Availability)和分區(qū)容錯(cuò)性(P:Partition tolerance)這三個(gè)基本需求,最多只能同時(shí)滿足其中的兩項(xiàng)。

一致性在分布式環(huán)境中,一致性是指在多個(gè)副本之間是否能夠保持一致的特性。對(duì)于數(shù)據(jù)副本分布在不同節(jié)點(diǎn)的系統(tǒng)來(lái)說,如果一個(gè)節(jié)點(diǎn)數(shù)據(jù)更新了,卻沒有使第二個(gè)節(jié)點(diǎn)數(shù)據(jù)相應(yīng)的更新,那如果此時(shí)讀到第二個(gè)節(jié)點(diǎn)的時(shí)候獲取的就是老數(shù)據(jù),這就是典型的數(shù)據(jù)不一致。如果能做到一個(gè)數(shù)據(jù)更新,所有用戶任何節(jié)點(diǎn)讀到的都是新的數(shù)據(jù),那么系統(tǒng)就被認(rèn)為具有強(qiáng)一致性。 可用性就是指服務(wù)必須一直處于可用狀態(tài),對(duì)于用戶每個(gè)操作請(qǐng)求總是能夠在有限的時(shí)間內(nèi)返回結(jié)果。重點(diǎn)是“有限的時(shí)間內(nèi)” 和“返回結(jié)果”。在不同業(yè)務(wù)場(chǎng)景下下“有限時(shí)間”是不同的。而“返回結(jié)果”指的是明確的處理結(jié)果,即成功或失敗。 分區(qū)容錯(cuò)性在分布式系統(tǒng)遇到任何網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然需要能夠保證對(duì)外提供滿足一致性和可用性的服務(wù),除非整個(gè)掛掉了。

附贈(zèng)CAP關(guān)系圖:

java分布式一致性原理是什么

CAP定理應(yīng)用

放棄C.A.P解讀
放棄P如果放棄P后想避免出現(xiàn)分區(qū)容錯(cuò)問題,簡(jiǎn)單做法是將所有的數(shù)據(jù)(或僅僅與事物有關(guān)系的數(shù)據(jù))都放在一個(gè)分布式節(jié)點(diǎn)。但需要注意的是放棄P,就代表放棄了系統(tǒng)的擴(kuò)展性。
放棄A放棄A一旦出現(xiàn)網(wǎng)絡(luò)分區(qū)或者其他故障,那么受影響的服務(wù)需要等待恢復(fù),并在此期間不能對(duì)外提供服務(wù)
放棄C這里說的放棄一致性,不是完全放棄,而是放棄數(shù)據(jù)強(qiáng)一致性,只保留數(shù)據(jù)最終一致性。具體多久能夠達(dá)到數(shù)據(jù)一致,取決于系統(tǒng)設(shè)計(jì),主要包括數(shù)據(jù)副本在不同節(jié)點(diǎn)之間復(fù)制時(shí)間的長(zhǎng)短。

其實(shí)從設(shè)計(jì)角度來(lái)看,分布式系統(tǒng)不可能滿足強(qiáng)一致性、可用性、分區(qū)容錯(cuò)性這三個(gè)需求。對(duì)于分布式系統(tǒng)來(lái)說,分區(qū)容錯(cuò)是基本屬性,因此系統(tǒng)架構(gòu)師往往把精力放在如何根據(jù)業(yè)務(wù)特點(diǎn)在C (一致性)和 A(可用性)直接尋求平衡。

BASE理論

BASE 是由eBay架構(gòu)師提出的。BASE是對(duì)CAP中一致性和可用性權(quán)衡的結(jié)果,其來(lái)源于對(duì)大規(guī)模互聯(lián)網(wǎng)分布式系統(tǒng)實(shí)踐的總結(jié),是基于CAP定律逐步演化而來(lái),其核心思想是即使無(wú)法做到強(qiáng)一致性,但每個(gè)應(yīng)用都可以根據(jù)自身業(yè)務(wù)特點(diǎn),才用適當(dāng)?shù)姆绞絹?lái)使系統(tǒng)打到最終一致性。下面看下BASE中的三要素。

基本可用是指分布式系統(tǒng)出現(xiàn)不可預(yù)知的故障時(shí)候,允許損失部分可用性,請(qǐng)注意,這絕不是等價(jià)于系統(tǒng)不可用。以下兩種典型例子:

  1. 響應(yīng)時(shí)間上的損失:正常情況下一個(gè)搜索引擎需要0.5秒返回查詢結(jié)果,但由于故障(如系統(tǒng)機(jī)房斷網(wǎng)或者失火),查詢結(jié)果響應(yīng)時(shí)間增加到2秒。

  2. 服務(wù)降級(jí):在秒殺搶購(gòu)等模式中,限制用戶的請(qǐng)求比例,保證系統(tǒng)的穩(wěn)定性。

弱狀態(tài)也稱為軟狀態(tài),和硬狀態(tài)比,是指允許系統(tǒng)中數(shù)據(jù)存在中間狀態(tài),并認(rèn)為中間狀態(tài)不會(huì)影響系統(tǒng)的整體可用性,即允許系統(tǒng)在不同幾點(diǎn)的數(shù)據(jù)副本之間進(jìn)行數(shù)據(jù)同步的過程存在延時(shí)。

最終一致性系統(tǒng)中所有的數(shù)據(jù)副本,在經(jīng)過一段時(shí)間同步后,最終能夠達(dá)到一個(gè)一致的狀態(tài)。不需要實(shí)時(shí)保證數(shù)據(jù)強(qiáng)一致。

亞馬遜首席技術(shù)官,發(fā)表過一篇對(duì)最終一致性詳細(xì)介紹的文章。他認(rèn)為最終一致性是一種特殊的弱一致性:系統(tǒng)能夠保證在沒有其他新的更新操作情況下,數(shù)據(jù)最終一定能夠達(dá)到一致的狀態(tài),因此所有客戶端對(duì)系統(tǒng)的數(shù)據(jù)訪問都能夠獲取到最新值。同時(shí),在沒有發(fā)生故障的前提下,數(shù)據(jù)達(dá)到一致狀態(tài)的時(shí)間延遲,取決于網(wǎng)絡(luò)延遲、系統(tǒng)負(fù)載和數(shù)據(jù)復(fù)制方案設(shè)計(jì)等因素。

在實(shí)踐中,最終一致性有五類變種:

因果一致性( causal consistency)因果一致性指的是,如果進(jìn)程A在更新完某個(gè)數(shù)據(jù)項(xiàng)后通知了進(jìn)程B,那么進(jìn)程B之后對(duì)該數(shù)據(jù)項(xiàng)的訪問都應(yīng)該能夠獲取到進(jìn)程A更新后的最新值,并且如果進(jìn)程B要對(duì)該數(shù)據(jù)進(jìn)行更新操作的話,務(wù)必基于進(jìn)程A更新后的最新值,不能發(fā)生丟失更新情況。與此同時(shí),與進(jìn)程A無(wú)關(guān)系的進(jìn)程C數(shù)據(jù)訪問無(wú)限制

讀已知所寫(read your write)指的是,進(jìn)程A更新數(shù)據(jù)后,它總是能夠訪問到更新過的最新值。也就是說,我自己讀到的數(shù)據(jù)一定不會(huì)比我上次寫入的數(shù)據(jù)舊。

會(huì)話一致性 (session consistency)就是系統(tǒng)能夠保證在同一個(gè)有效會(huì)話中實(shí)現(xiàn)“讀已知所寫”的一致性,也就是說,在更新操作后,在同一個(gè)會(huì)話中始終能獲取到最新值。

單調(diào)讀一致性(monotonic read consistency)指的是如果一個(gè)進(jìn)程從系統(tǒng)中讀取出一個(gè)數(shù)據(jù)項(xiàng)的某個(gè)值后,那么系統(tǒng)對(duì)于該進(jìn)程后續(xù)的任何數(shù)據(jù)訪問都不應(yīng)該返回更舊的值。

單調(diào)寫一致性一個(gè)系統(tǒng)需要能夠保證來(lái)自同一個(gè)進(jìn)程的寫操作被順序執(zhí)行。

以上就是五類系統(tǒng)架構(gòu)中常用到的一致性變種,可以相互結(jié)合設(shè)計(jì)一個(gè)具有最終一致性的分布式系統(tǒng)??傮w來(lái)說BASE理論面向的是大型高可用可擴(kuò)展的分布式系統(tǒng),和傳統(tǒng)ACID特性相反,不同于ACID的強(qiáng)一致性模型,提出通過犧牲強(qiáng)一致性來(lái)獲得可用性,并允許數(shù)據(jù)段時(shí)間內(nèi)的不一致,但是最終達(dá)到一致狀態(tài)。同時(shí),在實(shí)際分布式場(chǎng)景中,不同業(yè)務(wù)對(duì)數(shù)據(jù)的一致性要求不一樣,因此在設(shè)計(jì)中,ACID和BASE理論往往又會(huì)結(jié)合使用。

“java分布式一致性原理是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

分享文章:java分布式一致性原理是什么
文章轉(zhuǎn)載:http://jinyejixie.com/article38/ipegsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)靜態(tài)網(wǎng)站、ChatGPT、動(dòng)態(tài)網(wǎng)站、Google、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
广德县| 怀柔区| 南华县| 莆田市| 吴旗县| 霸州市| 时尚| 宜兴市| 高碑店市| 金乡县| 武义县| 左权县| 苗栗县| 双牌县| 沅江市| 安平县| 同仁县| 华容县| 紫云| 昭苏县| 武平县| 南和县| 清远市| 高碑店市| 汉源县| 通州区| 海林市| 长沙市| 渝北区| 中宁县| 承德县| 乌拉特前旗| 江城| 银川市| 基隆市| 大埔区| 英吉沙县| 溧水县| 洮南市| 阜城县| 巧家县|