国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

通過zookeeper淺談一致性算法

這篇具有很好參考價(jià)值的文章主要介紹了通過zookeeper淺談一致性算法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

CAP定理介紹

CAP 定理指的是在一個(gè)分布式系統(tǒng)中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區(qū)容錯(cuò)性),三者不可兼得。

通俗來說:

一致性(C):當(dāng)系統(tǒng)數(shù)據(jù)發(fā)生更新操作后,各個(gè)主機(jī)中的數(shù)據(jù)仍然處于一致的狀態(tài)。

可用性(A):對(duì)于用戶的每一個(gè)請(qǐng)求,系統(tǒng)總是可以在有限的時(shí)間內(nèi)對(duì)用戶做出響應(yīng)。

分區(qū)容錯(cuò)性(P):分布式系統(tǒng)在遇到任何網(wǎng)絡(luò)分區(qū)故障時(shí),仍能夠保證對(duì)外提供滿足一致性或可用性的服務(wù)。

對(duì)于分布式系統(tǒng)來說,網(wǎng)絡(luò)??環(huán)境是相對(duì)不可控制的,出現(xiàn)網(wǎng)絡(luò)分區(qū)是不可避免的。網(wǎng)絡(luò)分區(qū)的出現(xiàn)很可能就會(huì)帶來腦裂問題(例如:機(jī)房之間的網(wǎng)絡(luò)通信出現(xiàn)故障),這就會(huì)導(dǎo)致集群分裂成兩個(gè)或多個(gè),它們都認(rèn)為只有自己沒有崩潰,都可以獨(dú)立運(yùn)行。對(duì)于zk這分布式協(xié)調(diào)系統(tǒng)來說,數(shù)據(jù)的一致性是基本的要求,它需要保證在任何時(shí)刻訪問都能得到一致性的數(shù)據(jù)結(jié)果,所以分區(qū)容錯(cuò)性是需要保證的。zk默認(rèn)是通過“過半機(jī)制”防止腦裂的。

不難發(fā)現(xiàn),一致性和可用性是不能同時(shí)保證的。原因:數(shù)據(jù)同步是需要時(shí)間的,在同步的期間,若允許client訪問,則client從不同節(jié)點(diǎn)讀取到的數(shù)據(jù)就可能是不同的(犧牲了一致性保證了可用性)。若不允許client訪問,則client在同步期間無法獲取服務(wù),但是在同步后無論訪問哪個(gè)節(jié)點(diǎn)讀取的數(shù)據(jù)都會(huì)是一樣的(犧牲了可用性從而保證一致性)。

網(wǎng)絡(luò)分區(qū)是指在分布式系統(tǒng)中,由于網(wǎng)絡(luò)故障、節(jié)點(diǎn)故障等原因,導(dǎo)致集群中的節(jié)點(diǎn)被分割成多個(gè)獨(dú)立的子集,每個(gè)子集之間無法進(jìn)行通信的現(xiàn)象。網(wǎng)絡(luò)分區(qū)會(huì)導(dǎo)致分布式系統(tǒng)的可用性和一致性受到影響,因此需要采取一定的措施來避免或解決網(wǎng)絡(luò)分區(qū)問題。

BASE 理論

BASE 是 Basically Available(基本可用)、Soft state(軟狀態(tài))和 Eventually consistent(最終一致性)三個(gè)短語的簡寫,BASE 是對(duì) CAP 中一致性和可用性權(quán)衡的結(jié)果,其來源于對(duì)大規(guī)?;ヂ?lián)網(wǎng)系統(tǒng)分布式實(shí)踐的結(jié)論,是基于 CAP 定理逐步演化而來的。

BASE 理論的核心思想是:即使無法做到強(qiáng)一致性,但每個(gè)系統(tǒng)都可以根據(jù)自身的業(yè)務(wù)特點(diǎn),采用適當(dāng)?shù)姆绞絹硎瓜到y(tǒng)達(dá)到最終一致性。

1.基本可用:分布式系統(tǒng)出現(xiàn)不可預(yù)知故障的時(shí)候,允許損失部分可用性。體現(xiàn)在:響應(yīng)時(shí)間上的損失 和 功能上的損失(服務(wù)降級(jí))。

2.軟狀態(tài):允許系統(tǒng)數(shù)據(jù)存在的中間狀態(tài),并認(rèn)為該中間狀態(tài)的存在不會(huì)影響系統(tǒng)的整體可用性。例如允許zk之間的數(shù)據(jù)同步存在一定的數(shù)據(jù)延遲。

3.最終一致性:強(qiáng)調(diào)所有的數(shù)據(jù)副本在經(jīng)過一段時(shí)間后,最終能夠達(dá)到一個(gè)一致性的狀態(tài)。

從zk的角度談cp

在zk集群中,leader節(jié)點(diǎn)宕機(jī)后,整個(gè)集群會(huì)有一段時(shí)間是不能被訪問的,后面又可以訪問了。在這段不可訪問的時(shí)間內(nèi),zk集群是在做leader選舉,期間是不接受客戶端的讀寫操作的。也可以這么理解在leader選舉期間,zk集群是處于癱瘓期間的,同步完畢后讀取到的數(shù)據(jù)是一致性的數(shù)據(jù)。滿足了一致性,犧牲了一定的可用性。

分布式一致性

通俗來說,分布式事務(wù)是將多個(gè)操作組成一個(gè)事務(wù)來完成,并且這多個(gè)操作要么一起成功,要么一起失敗。這個(gè)很有名的一個(gè)處理分布式事務(wù)的組件就是阿里的seats。一般分布式一致性是由分布式事務(wù)實(shí)現(xiàn)的,需要保證客戶端從分布式系統(tǒng)中的每一個(gè)server節(jié)點(diǎn)獲取的數(shù)據(jù),在某一段時(shí)間是可以保證是一致的(最終一致性)。

2PC算法:每一個(gè)server對(duì)本地事務(wù)的確認(rèn),需要經(jīng)歷兩個(gè)階段,prepare階段和commit階段。在MySQL中通過2pc保證Redo和Binlog的保持一致。1)當(dāng)事務(wù)提交時(shí)InnoDB存儲(chǔ)引擎進(jìn)行prepare操作,將數(shù)據(jù)寫入到binglog日志中。2)InnoDB存儲(chǔ)引擎將事務(wù)寫入到Redo Log文件中。在seata的事務(wù)模式中XA,AT,TCC都是2PC的。

3PC算法:在2PC的基礎(chǔ)上新增一個(gè)Accept階段(提交指令階段)。該階段主要是事務(wù)協(xié)調(diào)者(TC)向資源管理者(RM)發(fā)送accept指令,RM收到指令后判斷是否可以完成自己的事物并且將判斷結(jié)果給TC。

Paxos算法:該算法要解決的問題是在分布式系統(tǒng)中如何就某個(gè)決議達(dá)成一致。ZAB(Zookeeper Atomic Broadcast)協(xié)議是Paxos算法的一種工業(yè)實(shí)現(xiàn)。在zookeeper中使用一個(gè)單一主進(jìn)程來接收并處理客戶端的所有請(qǐng)求(寫請(qǐng)求),當(dāng)數(shù)據(jù)發(fā)生變更,ZAB采用原子廣播協(xié)議,以事務(wù)提案 Proposal 的形式廣播到所有的副本進(jìn)程上并且為每一個(gè)事務(wù)分配一個(gè)全局遞增的編號(hào)Xid. 客戶端連接到一個(gè)z k集群后,如果是讀請(qǐng)求,那么當(dāng)前節(jié)點(diǎn)就會(huì)根據(jù)自己保存的數(shù)據(jù)對(duì)其進(jìn)行相應(yīng)數(shù)據(jù)返回。如果是寫請(qǐng)求并且不是leader節(jié)點(diǎn),那么當(dāng)前節(jié)點(diǎn)就會(huì)首先將請(qǐng)求轉(zhuǎn)發(fā)給leader節(jié)點(diǎn),leader節(jié)點(diǎn)以提案的方式廣播該寫操作,只有超過過半的節(jié)點(diǎn)同意該寫操作該寫請(qǐng)求才會(huì)被提交,然后leader廣播給所有的follower節(jié)點(diǎn),通知它們同步數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-724208.html

到了這里,關(guān)于通過zookeeper淺談一致性算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式一致性算法Paxos

    分布式一致性算法Paxos

    ????????Paxos算法是Lamport宗師提出的一種基于消息傳遞的分布式一致性算法,是目前公認(rèn)的解決分布式一致性問題最有效的算法之一。Google Chubby的作者M(jìn)ike Burrows曾經(jīng)狂妄的說過這個(gè)世界上只有一種一致性算法,那就是Paxos,其它的算法都是殘次品。 ????????Paxos算法是

    2023年04月16日
    瀏覽(94)
  • 分布式一致性算法——Paxos 和 Raft 算法

    分布式一致性算法——Paxos 和 Raft 算法

    本文隸屬于專欄《100個(gè)問題搞定大數(shù)據(jù)理論體系》,該專欄為筆者原創(chuàng),引用請(qǐng)注明來源,不足和錯(cuò)誤之處請(qǐng)?jiān)谠u(píng)論區(qū)幫忙指出,謝謝! 本專欄目錄結(jié)構(gòu)和參考文獻(xiàn)請(qǐng)見100個(gè)問題搞定大數(shù)據(jù)理論體系 Paxos和Raft算法都是 分布式一致性算法 ,它們的目的都是 在一個(gè)分布式系統(tǒng)

    2024年01月20日
    瀏覽(31)
  • 分布式系統(tǒng)共識(shí)機(jī)制:一致性算法設(shè)計(jì)思想

    分布式系統(tǒng)共識(shí)機(jī)制:一致性算法設(shè)計(jì)思想

    這次以一個(gè)宏觀的角度去總結(jié) 自己學(xué)習(xí)過的一致性算法。一致性算法的目標(biāo)就是讓分布式系統(tǒng)里的大部分節(jié)點(diǎn) 保持?jǐn)?shù)據(jù)一致。 區(qū)塊鏈中的共識(shí)算法,pow、pos這類就屬于這個(gè)范圍,但他們僅僅是在區(qū)塊鏈領(lǐng)域內(nèi)應(yīng)用的,下面介紹一致性算法是在分布式系統(tǒng)中 應(yīng)用廣泛的,當(dāng)然

    2023年04月16日
    瀏覽(29)
  • 論文閱讀-Pegasus:通過網(wǎng)絡(luò)內(nèi)一致性目錄容忍分布式存儲(chǔ)中的偏斜工作負(fù)載

    論文閱讀-Pegasus:通過網(wǎng)絡(luò)內(nèi)一致性目錄容忍分布式存儲(chǔ)中的偏斜工作負(fù)載

    論文名稱: Pegasus: Tolerating Skewed Workloads in Distributed Storage with In-Network Coherence Directories 高性能分布式存儲(chǔ)系統(tǒng)面臨著由于偏斜和動(dòng)態(tài)工作負(fù)載引起的負(fù)載不平衡的挑戰(zhàn)。本文介紹了Pegasus,這是一個(gè)利用新一代 可編程交換機(jī)ASIC 來平衡存儲(chǔ)服務(wù)器負(fù)載的新型存儲(chǔ)系統(tǒng)。Pegasus使

    2024年02月20日
    瀏覽(24)
  • 一文通吃:從 ZooKeeper 一致性,Leader選舉講到 ZAB 協(xié)議與 PAXOS 算法(上)

    一文通吃:從 ZooKeeper 一致性,Leader選舉講到 ZAB 協(xié)議與 PAXOS 算法(上)

    本文首發(fā)自「慕課網(wǎng)」,想了解更多IT干貨內(nèi)容,程序員圈內(nèi)熱聞,歡迎關(guān)注\\\"慕課網(wǎng)\\\"或慕課網(wǎng)公眾號(hào)! 作者:大能 | 慕課網(wǎng)講師 本文將從ZooKeeper集群如何保證一致性,講到zookeeper保證數(shù)據(jù)一致性的協(xié)議,然后展開講Zookeeper集群Leader選舉,包括集群三種節(jié)點(diǎn)的類型,ZAB協(xié)議中

    2024年02月07日
    瀏覽(19)
  • 淺談緩存最終一致性的解決方案

    淺談緩存最終一致性的解決方案

    作者:clareguo,騰訊 CSIG 后臺(tái)開發(fā)工程師 來源:騰訊技術(shù)工程open in new window 到底是更新緩存還是刪除緩存? 到底是先更新數(shù)據(jù)庫,再刪除緩存,還是先刪除緩存,再更新數(shù)據(jù)庫? 對(duì)于互聯(lián)網(wǎng)業(yè)務(wù)來說,傳統(tǒng)的直接訪問數(shù)據(jù)庫方式,主要通過數(shù)據(jù)分片、一主多從等方式來扛住讀

    2024年01月16日
    瀏覽(35)
  • ZooKeeper是如何保證數(shù)據(jù)一致性的?

    ZooKeeper是如何保證數(shù)據(jù)一致性的?

    ???????? 目錄 一、分布式一致性原理 二、ZooKeeper架構(gòu) ? ? ? ? 2.1 ZAB 協(xié)議操作順序性 ? ? ? ? 2.2 領(lǐng)導(dǎo)者選舉 ? ? ? ? 成員身份 ? ? ? ? 成員狀態(tài) ? ? ? ? 領(lǐng)導(dǎo)者選舉 三、總結(jié) ????????在分布式系統(tǒng)里的多臺(tái)服務(wù)器要對(duì)數(shù)據(jù)狀態(tài)達(dá)成一致,其實(shí)是一件很有難度和挑

    2024年04月11日
    瀏覽(19)
  • 深入理解高并發(fā)下的MySQL與Redis緩存一致性問題(增刪改查數(shù)據(jù)緩存的一致性、Canal、分布式系統(tǒng)CAP定理、BASE理論、強(qiáng)、弱一致性、順序、線性、因果、最終一致性)

    一些小型項(xiàng)目,或極少有并發(fā)的項(xiàng)目,這些策略在無并發(fā)情況下,不會(huì)有什么問題。 讀數(shù)據(jù)策略:有緩存則讀緩存,然后接口返回。沒有緩存,查詢出數(shù)據(jù),載入緩存,然后接口返回。 寫數(shù)據(jù)策略:數(shù)據(jù)發(fā)生了變動(dòng),先刪除緩存,再更新數(shù)據(jù),等下次讀取的時(shí)候載入緩存,

    2024年03月20日
    瀏覽(30)
  • 分布式數(shù)據(jù)庫-事務(wù)一致性

    分布式數(shù)據(jù)庫-事務(wù)一致性

    version: v-2023060601 author: 路__ 分布式數(shù)據(jù)庫的“強(qiáng)一致性”應(yīng)該包含兩個(gè)方面: serializability(串行) and linearizability(線性一致) ,上述圖為“Highly Available Transactions: Virtues and Limitations”論文中對(duì)于一致性模型的介紹。圖中箭頭表示一致性模型之間的關(guān)系。對(duì)于異步網(wǎng)絡(luò)上的分

    2024年02月08日
    瀏覽(28)
  • 【分布式】一致性哈希和哈希槽

    【分布式】一致性哈希和哈希槽

    當(dāng)我們擁有了多臺(tái)存儲(chǔ)服務(wù)器之后,現(xiàn)在有多個(gè)key,希望可以將這些個(gè)key均勻的緩存到這些服務(wù)器上,可以使用哪些方案呢? 1.1 直接哈希取模 這是一種最容易想到的方法,使用取模算法hash(key)% N,對(duì)key進(jìn)行hash運(yùn)算后取模,N是機(jī)器的數(shù)量。key進(jìn)行hash后的結(jié)果對(duì)3取模,得

    2024年02月03日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包