Gossip,流言蜚语传播协议

本文详细介绍了分布式协议中的Gossip协议,包括其直接邮寄、反熵(推、拉、推拉)和谣言传播策略,以及它们如何解决数据一致性问题。特别关注了在不同场景下选择适当协议的重要性。
摘要由CSDN通过智能技术生成

分布式协议系列文章目录

  1. 拜占庭将军问题
  2. 一致性哈希算法
  3. Gossip,流言蜚语传播协议
  4. Quorum NWR算法,鱼和熊掌也可兼得
  5. PoW算法,请出示你的证明

Gossip,流言蜚语传播协议


  Gossip协议是一种去中心化思想的分布式协议,解决数据在分布式集群中的传播和一致性。就如其字面意思流言蜚语一样,利用一种随机并带有传染性的方式,在一定时间内将信息传播到整个网络中,使得分布式中所有节点数据一致。
  Gossip协议中有直接邮寄(Direct Mail)、反熵(Anti-entropy)和谣言传播(Rumor mongering)三种传播方式。

直接邮寄(Direct Mail)

  直接邮寄就是指在接收到消息后立刻发送给其他节点,如果数据发送失败,就将数据缓存下来然后重传。该方式实现起来容易且数据同步及时,但是如其名发送邮件一样,对方不一定能接收到或者处理成功,也会因为缓存队列满了而丢数据,综上直接邮寄是无法实现最终一致性的。
image.png
  如上图所示,节点A在处理完数据后,直接将此次更新数据的动作邮寄给了节点B和节点C,以便节点B和节点C同步完成更新动作实现一致性。

反熵(Anti-entropy)

  何为熵,熵就是指混乱程度,即反熵就是消除混乱程度,分布式领域就是消除不同节点中数据的差异,以达到各个节点间的数据一致性。
  反熵是一种通过异步修复实现最终一致性的方法,换言之每隔一段时间就在分布式集群中随机选择节点,然后通过相互交换自己所有数据的方式来消除节点之间的差异,从而实现数据的最终一致性。
image.png
  反熵有推、拉和推拉三种方式实现方式,

  所谓推就是节点主动将自己的所有副本数据推给其它节点,修复其它节点副本中的熵,使用推的模式可以提高整个分布式集群中数据的实时性,
image.png

  所谓拉就是节点主动请求获取其它节点的最新数据副本,以修复自己副本中的熵。虽然拉的模式可以减少一些不必要的网络开销,但是也会造成消息的延迟。
image.png

推拉

  所谓推拉就是推和拉两种方式相结合,如节点A主动请求获取节点C的最新数据副本,节点C将自己最新的数据副本返回给节点A后,节点A又将自己的最新数据副本推送给节点B。
image.png
  反熵需要节点两两交换和比对自己所有的数据,且执行反熵时通讯成本极高,从而需要在进行反熵时引入校验和等机制,以降低反熵过程中的数据量和通讯成本。

谣言传播(Rumor mongering)

  反熵执行效率很高且实现也简单,如果反熵一旦作用于一个动态变化或者节点数比较多的分布式环境中时,就不在适用了。此时就可以选择谣言传播的方式来实现数据最终一致性。
  谣言传播,类似于现实生活中一传十、十传百的网络流言一样。即如果当一个节点有了新数据,这个节点就会变成活跃状态,并周期性地联系其它节点向其发送新数据,直到所有的节点都拥有新数据为止。
image.png
  节点A接收到数据处理完成之后就会变成活跃状态,然后通知节点B和节点D接收处理数据,此时节点B在处理完数据后也会变成活跃状态,然后通知节点C接收处理数据。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐只乐之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值