Gossip 协议 学习笔记

分布式系统中,不同的节点进行信息共享的一种分散式发散消息的协议

被Redis、Apache Cassandra、Consul等项目应用

Gossip消息传播模式

  • 反熵
  • 传谣

反熵

集群中的节点,每隔段时间就随机选择某个其他节点,交换数据来消除两者的差异,实现数据的最终一致性

主要有三种方式实现

  • 推:把自己的副本数据推给对方,修复对方副本中的熵
  • 拉:拉取对方的副本数据,修复自己的熵
  • 推拉:结合上面的两种

特点:简单实用,一般设计成闭环传播。节点过多或者节点动态变化时候就不适用了

谣言传播

一个节点一旦有了新的数据,就会变成活跃节点,会周期性地联系其他节点发送新数据,直到所有的节点都同步

Gossip协议的优缺点

优点

  • 简单
  • 容忍动态节点
  • 速度快

缺点

  • 消息需要多轮才能传到整个网络
  • 不允许存在恶意节点
  • 可能会出现消息冗余
img_show