Gossip 协议

作者: xiewen | 来源:发表于2016-07-19 17:19 被阅读10036次

持续更新

背景

Gossip 算法又被称为反熵(Anti-Entropy),熵是物理学上的一个概念,代表杂乱无章,而反熵就是在杂乱无章中寻求一致,这充分说明了 Gossip 的特点:在一个有界网络中,每个节点都随机地与其他节点通信,经过一番杂乱无章的通信,最终所有节点的状态都会达成一致。每个节点可能知道所有其他节点,也可能仅知道几个邻居节点,只要这些节可以通过网络连通,最终他们的状态都是一致的,当然这也是疫情传播的特点。
简单的描述下这个协议,首先要传播谣言就要有种子节点。种子节点每秒都会随机向其他节点发送自己所拥有的节点列表,以及需要传播的消息。任何新加入的节点,就在这种传播方式下很快地被全网所知道。这个协议的神奇就在于它从设计开始就没想到信息一定要传递给所有的节点,但是随着时间的增长,在最终的某一时刻,全网会得到相同的信息。当然这个时刻可能仅仅存在于理论,永远不可达。

实现

gossip 协议有多种实现,这里说一个例子当节点启动时,读配置文件,然后向一个 seed 发送信息,进行信息同步,然后开始没秒都随机选择一个 seed 节点来同步信息
1、随机取一个当前活着的节点,并向它发送同步请求
2、向随机一台不可达的机器发送同步请求
3、如果第一步中所选择的节点不是 seed,或者当前活着的节点数少于 seed 数,则向随意一台 seed 发送同步请求

应用

Cassandra
Cassandra 主要是使用 Gossip 完成三方面的功能:
失败检测
动态负载均衡
去中心化的弹性扩展
Consul

参考

Gossip 算法 - 老码农的专栏
分布式基础通信协议: paxos,totem 和 gossip
分布环境下的 Gossip 算法综述
http://www.infoq.com/cn/articles/OpenStack-awcloud-HA/
cassandra 学习笔记五

相关文章

  • 一万字详解 Redis Cluster Gossip 协议

    Redis Cluster Gossip 协议 今天来讲一下 Reids Cluster 的 Gossip 协议和...

  • Redis集群通信机制、主备切换原理、分布式寻址算法

    1. Gossip协议 Gossip协议包含多种消息,包含ping、pong、meet、fail等等。 meet:...

  • gossip协议

    我们知道redis集群在集群之间通讯时使用加10000端口通讯,使用的是gossip 协议。 gossip 协议包...

  • Redis节点间的内部通信机制

    集群元数据的维护有两种方式:集中式、Gossip 协议。redis cluster 节点间采用 gossip 协议...

  • Gossip协议

    Gossip协议 Gossip是分布式系统中被广泛使用的协议,其主要用于实现分布式节点或者进程之间的信息交换。Go...

  • Gossip 协议

    持续更新 背景 Gossip 算法又被称为反熵(Anti-Entropy),熵是物理学上的一个概念,代表杂乱无章,...

  • Gossip协议

    Gossip是什么 gossip 协议利用一种随机的方式将信息传播到整个网络中,并在一定时间内使得系统内的所有节点...

  • Gossip 协议

    Gossip protocol 也叫 Epidemic Protocol (流行病协议),实际上它还有很多别名,比...

  • Gossip 协议

    Gossip 协议也叫 Epidemic Protocol(流行病协议),主要用于消息传播,是一种一致性算法。协议...

  • Gossip协议

    Paxos、Raft、ZAB 等分布式算法经常会被称作是“强一致性”的分布式共识协议,其实这样的描述抠细节概念的话...

网友评论

  • iszhenyu:题目很丰满,内容很骨感

本文标题:Gossip 协议

本文链接:https://www.haomeiwen.com/subject/yqomjttx.html