首页   快速返回

gossip简单介绍
文章分类 gossip
发布时间 2019-02-21 修改时间 2019-02-21
gossip 八卦 闲话 闲谈 流言

去中心化的分布式协议,用于实现节点或者进程之间的信息交换
通常被用在大型的无中心化网络环境中,并且假设网络环境不太稳定,是分布式系统中被广泛使用的一种最终一致性协议。

网络中的某个节点将指定的数据发送到网络内的一组其他节点。
数据通过节点像病毒一样逐个传播,最终数据传播到系统中的每个节点。从而实现在大型分布式系统中可靠地进行数据的传播。


gossip 协议特点

协议本质上是概率性的,节点选择其网络内随机通信的目标节点。
扩展性高 , 发送方节点向固定数量的接收方节点发送消息,与网络中的总节点数量无关。
低延迟,如果确认信息未到达接收节点,发送节点不会等待确认。
不需要故障检测或特定恢复操作,因为节点没有特定的角色,接收信息失败的节点不会阻止其他节点继续发送消息。
实现容错,因为节点从其它不同的节点接收消息的副本。

协议类型

传播协议/谣言协议(Dissemination Protocols / Rumor-Mongering Protocols)
通过网络中的泛洪代理来工作,节点收到广播的数据后直接转发给所有的邻居节点,此方式可以提高网络的健壮性,但是容易造成广播风暴。

反熵协议(Anti-Entropy Protocols)
用于修复复制数据,通过比较复制和协调差异进行操作,Hyperledger Fabric中的数据同步就使用此方式实现。

计算聚合协议(Protocols that Compute Aggregates)
通过对网络中节点的信息进行采样,并将这些值组合起来得到系统范围内的值,从而计算出网络范围内的集合,之后将建立一种全面的信息流模式。


gossip数据分发协议的两种数据传输方式


推送方式(Push-based)
网络中的某个节点随机选择N个节点作为数据接收对象
该节点向其选中的N个节点传输相应的信息
接收到信息的节点处理它接收到的数据
接收到数据的节点再从第一步开始重复执行

拉取方式(Pull-based)
某个节点周期性地选择随机N个节点询问有没有最新的信息
收到请求的节点回复请求节点其最近未收到的信息


Gossip 算法因为 Cassandra 而名声大噪。
Elasticsearch是P2P类型(gossip协议)的分布式系统
es5.0以后自动发现方式为单播(unicast)方式,原来的组播(multicast)被彻底删除。

上一篇     下一篇
druid连接池推荐配置

aerospike工具aql

监控系统相关资料整理

redis持久化与恢复

OpenTracing入门

kubernetes2018