Gossip 協(xié)議

Gossip 協(xié)議也叫 Epidemic Protocol(流行病協(xié)議)雕崩,主要用于消息傳播仰坦,是一種一致性算法扣孟。協(xié)議也非常好理解,正如協(xié)議的名稱瞬雹,如流行病一樣靠“感染”節(jié)點進行持續(xù)傳播昧谊。使用 Gossip 協(xié)議的有:Redis Cluster、Consul挖炬、Apache Cassandra等揽浙。

六度分隔理論

要說 Gossip 就不得不提“六度分隔理論”状婶,簡單的說:你和任何一個陌生人之間所間隔的人不會超過五個意敛,也就是說,最多通過五個人你就能夠認識任何一個陌生人膛虫。由時任哈佛大學的心理學教授 Stanley Milgram 在1967年提出草姻。

Facebook 研究了已注冊的15.9億使用者資料,在2016年公布標題為 “Three and a half degrees of separation” 的研究結果稍刀。發(fā)現世界比人們想象的更緊密撩独,世界上的每個人(至少在 Facebook 活躍的15.9億人)平均通過3.57個人就可以與任意另外一個人產生聯(lián)系。

六度分隔理論

基于六度分隔理論账月,信息的傳播會非常迅速综膀,而且網絡交互次數不會很多。Gossip 協(xié)議是基于六度分隔理論的很好實現局齿。

協(xié)議原理

Gossip協(xié)議基本思想就是:一個節(jié)點想要分享一些信息給網絡中的其他的節(jié)點剧劝,于是隨機選擇一些節(jié)點進行信息傳遞。這些收到信息的節(jié)點接下來把這些信息傳遞給其他一些隨機選擇的節(jié)點抓歼。整體過程描述如下讥此。

  1. Gossip 是周期性的散播消息
  2. 被感染節(jié)點隨機選擇 k 個鄰接節(jié)點(fan-out)散播消息,假設把 fan-out 設置為2谣妻,每次最多往2個節(jié)點散播
  3. 每次散播消息都選擇尚未發(fā)送過的節(jié)點進行散播
  4. 收到消息的節(jié)點不再往發(fā)送節(jié)點散播萄喳,比如 A -> B,那么 B 進行散播的時候蹋半,不再發(fā)給 A
協(xié)議原理

協(xié)議優(yōu)點

擴展性

Gossip 協(xié)議的可擴展性極好他巨,一般只需要 O(LogN) 輪就可以將信息傳播到所有的節(jié)點,其中 N 代表節(jié)點的個數减江。即使集群節(jié)點的數量增加闻蛀,每個節(jié)點的負載也不會增加很多,幾乎是恒定的您市。這就允許集群管理的節(jié)點規(guī)模能橫向擴展到幾千幾萬個觉痛,集群內的消息通信成本卻不會增加很多。

容錯

網絡中任何節(jié)點的宕機和重啟都不會影響 Gossip 消息的傳播茵休,Gossip 協(xié)議具有天然的分布式系統(tǒng)容錯特性薪棒。

健壯性

Gossip 協(xié)議是去中心化的協(xié)議手蝎,所以集群中的所有節(jié)點都是對等的,任何節(jié)點出現問題都不會阻止其他節(jié)點繼續(xù)發(fā)送消息俐芯。任何節(jié)點都可以隨時加入或離開棵介,而不會影響系統(tǒng)的整體服務質量。

最終一致性

消息傳播是指數級的快速傳播吧史,因此當有新信息傳播時邮辽,消息可以快速地發(fā)送到全局節(jié)點。系統(tǒng)狀態(tài)的不一致可以在很快的時間內收斂到一致贸营。

協(xié)議缺點

消息延遲

節(jié)點隨機向少數幾個節(jié)點發(fā)送消息吨述,消息最終是通過多個輪次的傳播而到達全網,不可避免的造成消息延遲钞脂。不適合于對實時性要求較高的場景揣云。

消息冗余

節(jié)點會定期隨機選擇周圍節(jié)點發(fā)送消息,而收到消息的節(jié)點也會重復該步驟冰啃,因此就不可避免的存在消息重復發(fā)送給同一節(jié)點的情況邓夕,造成了消息的冗余,同時也增加了收到消息的節(jié)點的處理壓力阎毅。

拜占庭問題

如果有一個惡意傳播消息的節(jié)點焚刚,Gossip協(xié)議的分布式系統(tǒng)就會出問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末扇调,一起剝皮案震驚了整個濱河市矿咕,隨后出現的幾起案子,更是在濱河造成了極大的恐慌肃拜,老刑警劉巖痴腌,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異燃领,居然都是意外死亡士聪,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門猛蔽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剥悟,“玉大人,你說我怎么就攤上這事曼库∏冢” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵毁枯,是天一觀的道長慈缔。 經常有香客問我,道長种玛,這世上最難降的妖魔是什么藐鹤? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任瓤檐,我火速辦了婚禮,結果婚禮上娱节,老公的妹妹穿的比我還像新娘挠蛉。我一直安慰自己,他們只是感情好肄满,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布谴古。 她就那樣靜靜地躺著,像睡著了一般稠歉。 火紅的嫁衣襯著肌膚如雪掰担。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天轧抗,我揣著相機與錄音恩敌,去河邊找鬼瞬测。 笑死横媚,一個胖子當著我的面吹牛,可吹牛的內容都是我干的月趟。 我是一名探鬼主播灯蝴,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼孝宗!你這毒婦竟也來了穷躁?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤因妇,失蹤者是張志新(化名)和其女友劉穎问潭,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體婚被,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡狡忙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年址芯,在試婚紗的時候發(fā)現自己被綠了灾茁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡谷炸,死狀恐怖,靈堂內的尸體忽然破棺而出旬陡,到底是詐尸還是另有隱情驶睦,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布啥繁,位于F島的核電站酬核,受9級特大地震影響嫡意,放射性物質發(fā)生泄漏蔬螟。R本人自食惡果不足惜旧巾,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一罢坝、第九天 我趴在偏房一處隱蔽的房頂上張望嘁酿。 院中可真熱鬧娱仔,春花似錦、人聲如沸开仰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奶稠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锌订,已是汗流浹背辆飘。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工蜈项, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侥衬。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓聋亡,卻偏偏與公主長得像坡倔,于是被迫代替她去往敵國和親罪塔。 傳聞我的和親對象是個殘疾皇子征堪,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容