日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

  • gossip 是什么

Gossip protocol 也叫 Epidemic Protocol (流行病協議),實際上它還有很多別名,比如:“流言算法”、“疫情傳播算法”等。是基于流行病傳播方式的節點或者進程之間信息交換的協議,主要用在分布式數據庫系統中各個副本節點同步數據之用,這種場景的一個最大特點就是組成的網絡的節點都是對等節點,是非結構化網絡,

gossip protocol 最初是由施樂公司帕洛阿爾托研究中心(Palo Alto Research Center)的研究員艾倫·德默斯(Alan Demers)于1987年創造的。從 gossip 單詞就可以看到,其中文意思是八卦、流言等意思,我們可以想象下緋聞的傳播(或者流行病的傳播);gossip 協議的工作原理就類似于這個。gossip 協議利用一種隨機的方式將信息傳播到整個網絡中,并在一定時間內使得系統內的所有節點數據一致。Gossip 其實是一種去中心化思路的分布式協議,解決狀態在集群中的傳播和狀態一致性的保證兩個問題。

  • Gossip 協議的執行過程:

Gossip 過程是由種子節點發起,當一個種子節點有狀態需要更新到網絡中的其他節點時,它會隨機的選擇周圍幾個節點散播消息,收到消息的節點也會重復該過程,直至最終網絡中所有的節點都收到了消息。這個過程可能需要一定的時間,由于不能保證某個時刻所有節點都收到消息,但是理論上最終所有節點都會收到消息,因此它是一個最終一致性協議。

如下:

  1. Gossip 是周期性的散播消息,把周期限定為 1 秒
  2. 被感染節點隨機選擇 k 個鄰接節點(fan-out)散播消息,這里把 fan-out 設置為 3,每次最多往 3 個節點散播。
  3. 每次散播消息都選擇尚未發送過的節點進行散播
  4. 收到消息的節點不再往發送節點散播,比如 A -> B,那么 B 進行散播的時候,不再發給 A。

假設現在有 16 個節點,節點 1 為初始被感染節點,通過 Gossip 過程,最終所有節點都被感染:

P2P 網絡核心技術(Gossip 協議)

 

gossip 優勢

可擴展性(Scalable)

gossip 協議是可擴展的,一般需要 O(logN) 輪就可以將信息傳播到所有的節點,其中 N 代表節點的個數。每個節點僅發送固定數量的消息,并且與網絡中節點數目無法。在數據傳送的時候,節點并不會等待消息的 ack,所以消息傳送失敗也沒有關系,因為可以通過其他節點將消息傳遞給之前傳送失敗的節點。系統可以輕松擴展到數百萬個進程。

容錯(Fault-tolerance)

網絡中任何節點的重啟或者宕機都不會影響 gossip 協議的運行。

健壯性(Robust)

gossip 協議是去中心化的協議,所以集群中的所有節點都是對等的,沒有特殊的節點,所以任何節點出現問題都不會阻止其他節點繼續發送消息。任何節點都可以隨時加入或離開,而不會影響系統的整體服務質量(QOS)

最終一致性(Convergent consistency)

Gossip 協議實現信息指數級的快速傳播,因此在有新信息需要傳播時,消息可以快速地發送到全局節點,在有限的時間內能夠做到所有節點都擁有最新的數據。

gossip 的應用

gossip 協議可以支持以下需求:

  • Database replication
  • 消息傳播
  • Cluster membership
  • Failure 檢測
  • Overlay Networks
  • Aggregations (比如計算平均值、最大值以及總和)

在下面的工程上使用到了 gossip 協議。

  • Riak(https://github.com/basho/riak) 使用 gossip 協議來共享和傳遞集群的環狀態(ring state)和存儲桶屬性(bucket properties)。
  • Cassandra:節點間的信息交換使用了 gossip 協議,因此所有節點都可以快速了解集群中的所有其他節點。
  • Dynamo:采用基于 gossip 協議的分布式故障檢測和成員協議,這樣集群中添加或移除節點,其他節點可以快速檢測到。
  • Consul:使用了稱為 SERF 的gossip 協議,主要有兩個目的:1、發現新的節點或者發現故障節點;2、為一些重要的事件(比如 Leader 選舉)傳播提供可靠、快速的傳播
  • redis Cluster:集群中的 Nodes 之間使用 gossip 協議向其他 nodes 傳播集群信息,以達到自動發現的特性。

分享到:
標簽:網絡 P2P
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定