如何理解Gossip協(xié)議-創(chuàng)新互聯(lián)

如何理解Gossip 協(xié)議,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

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

Gossip protocol 也叫 Epidemic Protocol (流行病協(xié)議)。

原本用于分布式數(shù)據(jù)庫中節(jié)點同步數(shù)據(jù)使用,后被廣泛用于數(shù)據(jù)庫復制、信息擴散、集群成員身份確認、故障探測等。

Gossip協(xié)議是基于六度分隔理論(Six Degrees of Separation)哲學的體現(xiàn),簡單的來說,一個人通過6個中間人可以認識世界任何人。數(shù)學公式是:

n表示復雜度,N表示人的總數(shù),W表示每個人的聯(lián)系寬度。依據(jù)鄧巴數(shù),即每個人認識150人,其六度就是1506 =11,390,625,000,000(約11.4萬億)。

基于六度分隔理論,任何信息的傳播其實非常迅速,而且網(wǎng)絡交互次數(shù)不會很多。比如Facebook在2016年2月4號做了一個實驗:研究了當時已注冊的15.9億使用者資料,發(fā)現(xiàn)這個神奇數(shù)字的“網(wǎng)絡直徑”是4.57,翻成白話文意味著每個人與其他人間隔為4.57人。

-     原理     -

Gossip協(xié)議執(zhí)行過程:

  • 種子節(jié)點周期性的散播消息 【假定把周期限定為 1 秒】。

  • 被感染節(jié)點隨機選擇N個鄰接節(jié)點散播消息【假定fan-out(扇出)設置為6,每次最多往6個節(jié)點散播】。

  • 節(jié)點只接收消息不反饋結果。

  • 每次散播消息都選擇尚未發(fā)送過的節(jié)點進行散播。

  • 收到消息的節(jié)點不再往發(fā)送節(jié)點散播:A -> B,那么B進行散播的時候,不再發(fā)給 A。

Goosip 協(xié)議的信息傳播和擴散通常需要由種子節(jié)點發(fā)起。整個傳播過程可能需要一定的時間,由于不能保證某個時刻所有節(jié)點都收到消息,但是理論上最終所有節(jié)點都會收到消息,因此它是一個最終一致性協(xié)議。

Gossip協(xié)議是一個多主協(xié)議,所有寫操作可以由不同節(jié)點發(fā)起,并且同步給其他副本。Gossip內(nèi)組成的網(wǎng)絡節(jié)點都是對等節(jié)點,是非結構化網(wǎng)絡。

-     消息類型     -

Gossip 協(xié)議的消息傳播方式有兩種:Anti-Entropy(反熵傳播)和Rumor-Mongering(謠言傳播)。

反熵傳播是以固定的概率傳播所有的數(shù)據(jù)。所有參與節(jié)點只有兩種狀態(tài):Suspective(病原)、Infective(感染)。這種節(jié)點狀態(tài)又叫做simple epidemics(SI model)。過程是種子節(jié)點會把所有的數(shù)據(jù)都跟其他節(jié)點共享,以便消除節(jié)點之間數(shù)據(jù)的任何不一致,它可以保證最終、完全的一致。缺點是消息數(shù)量非常龐大,且無限制;通常只用于新加入節(jié)點的數(shù)據(jù)初始化。

謠言傳播是以固定的概率僅傳播新到達的數(shù)據(jù)。所有參與節(jié)點有三種狀態(tài):Suspective(病原)、Infective(感染)、Removed(愈除)。這種節(jié)點狀態(tài)又叫做complex epidemics(SIR model)。過程是消息只包含最新 update,謠言消息在某個時間點之后會被標記為 removed,并且不再被傳播。缺點是系統(tǒng)有一定的概率會不一致,通常用于節(jié)點間數(shù)據(jù)增量同步。

-     通信方式     -

Gossip 協(xié)議最終目的是將數(shù)據(jù)分發(fā)到網(wǎng)絡中的每一個節(jié)點。根據(jù)不同的具體應用場景,網(wǎng)絡中兩個節(jié)點之間存在三種通信方式:推送模式、拉取模式、Push/Pull。

  • Push: 節(jié)點 A 將數(shù)據(jù) (key,value,version) 及對應的版本號推送給 B 節(jié)點,B 節(jié)點更新 A 中比自己新的數(shù)據(jù)

  • Pull:A 僅將數(shù)據(jù) key, version 推送給 B,B 將本地比 A 新的數(shù)據(jù)(Key, value, version)推送給 A,A 更新本地

  • Push/Pull:與 Pull 類似,只是多了一步,A 再將本地比 B 新的數(shù)據(jù)推送給 B,B 則更新本地

如果把兩個節(jié)點數(shù)據(jù)同步一次定義為一個周期,則在一個周期內(nèi),Push 需通信 1 次,Pull 需 2 次,Push/Pull 則需 3 次。雖然消息數(shù)增加了,但從效果上來講,Push/Pull 最好,理論上一個周期內(nèi)可以使兩個節(jié)點完全一致。直觀上,Push/Pull 的收斂速度也是最快的。

-     總結     -

綜上所述,我們可以得出Gossip是一種去中心化的分布式協(xié)議,數(shù)據(jù)通過節(jié)點像病毒一樣逐個傳播。因為是指數(shù)級傳播,整體傳播速度非常快,很像現(xiàn)在美國失控的2019-nCoV(新冠)一樣。它具備以下優(yōu)勢:

  • 擴展性:允許節(jié)點的任意增加和減少,新增節(jié)點的狀態(tài) 最終會與其他節(jié)點一致。

  • 容錯:任意節(jié)點的宕機和重啟都不會影響 Gossip 消息的傳播,具有天然的分布式系統(tǒng)容錯特性。

  • 去中心化:無需中心節(jié)點,所有節(jié)點都是對等的,任意節(jié)點無需知道整個網(wǎng)絡狀況,只要網(wǎng)絡連通,任意節(jié)點可把消息散播到全網(wǎng)。

  • 一致性收斂:消息會以“一傳十的指數(shù)級速度”在網(wǎng)絡中傳播,因此系統(tǒng)狀態(tài)的不一致可以在很快的時間內(nèi)收斂到一致。消息傳播速度達到了 logN。

  • 簡單

同樣也存在以下缺點:

  • 消息延遲:節(jié)點隨機向少數(shù)幾個節(jié)點發(fā)送消息,消息最終是通過多個輪次的散播而到達全網(wǎng);不可避免的造成消息延遲。

  • 消息冗余:節(jié)點定期隨機選擇周圍節(jié)點發(fā)送消息,而收到消息的節(jié)點也會重復該步驟;不可避免的引起同一節(jié)點消息多次接收,增加消息處理壓力。

Gossip協(xié)議由于以上的優(yōu)缺點,所以適合于AP場景的數(shù)據(jù)一致性處理,常見應用有:P2P網(wǎng)絡通信、Apache Cassandra、Redis Cluster、Consul。

看完上述內(nèi)容,你們掌握如何理解Gossip 協(xié)議的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站標題:如何理解Gossip協(xié)議-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://muchs.cn/article18/dsjogp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計外貿(mào)網(wǎng)站建設、用戶體驗、微信公眾號、企業(yè)建站、做網(wǎng)站

廣告

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

成都seo排名網(wǎng)站優(yōu)化