内容简介:1.Gossip 协议的概念2.Gossip 协议的数据传输方式在分布式网络中,网络节点是否具有高扩展性,节点的可用性,数据如何进行传播,且在一个不稳定的分布式网络环境中,如何保证数据的实时同步,是所有开发人员都需要关注并解决的问题。
目标
1.Gossip 协议的概念
2.Gossip 协议的数据传输方式
任务实现
在分布式网络中,网络节点是否具有高扩展性,节点的可用性,数据如何进行传播,且在一个不稳定的分布式网络环境中,如何保证数据的实时同步,是所有开发人员都需要关注并解决的问题。
8.1.1 认识 Gossip协议(Gossip Protocol)
Gossip由来
Gossip 协议取自人类的"八卦"概念,两个人只要愿意,可以随时互相交换信息。Gossip 协议最初是在 1987 年由 Alan Demers 发明的,他当时是 Xerox 的 Palo Alto 研究中心的研究员,专门研究在不可信网络环境中路由信息的方式。
Gossip作用
Gossip是一种去中心化的分布式协议,用于实现节点或者进程之间的信息交换,通常被用在大型的无中心化网络环境中,并且假设网络环境不太稳定,是分布式系统中被广泛使用的一种最终一致性协议。
Gossip协议是在网络中的某个节点将指定的数据发送到网络内的一组其他节点。数据通过节点像病毒一样逐个传播。最终,数据传播到系统中的每个节点。从而实现在大型分布式系统中可靠地进行数据的传播。
简单的理解,Gossip是一种网络通信协议, 这种协议类似于人类中的谣言传播。一个人A第一次听到谣言,然后打电话给某人B以分享谣言。一旦他们挂了电话,B打电话给第三个人C,A与B分享谣言的同时,也在联系D分享谣言。这个过程一直持续到每个人都知道这个谣言。这种方式可方便地在一个网络中的所有节点之间快速传播数据。
Gossip协议所具备的特征如下:
- Gossip 协议本质上是概率性的,节点选择其网络内随机通信的目标节点。
- 扩展性高:发送方节点向固定数量的接收方节点发送消息,与网络中的总节点数量无关。
- 低延迟:如果确认信息未到达接收节点,发送节点不会等待确认。
- 不需要故障检测或特定恢复操作,因为节点没有特定的角色,接收信息失败的节点不会阻止其他节点继续发送消息。
- 实现容错:因为节点从其它不同的节点接收消息的副本。
Gossip协议类型:
- 传播协议/谣言协议(Dissemination Protocols / Rumor-Mongering Protocols):
通过网络中的泛洪代理来工作,节点收到广播的数据后直接转发给所有的邻居节点;此方式可以提高网络的健壮性,但是容易造成广播风暴。
- 反熵协议(Anti-Entropy Protocols):用于修复复制数据,通过比较复制和协调差异进行操作;Hyperledger Fabric中的数据同步就是使用此方式实现。
- 计算聚合的协议(Protocols that Compute Aggregates):通过对网络中节点的信息进行采样,并将这些值组合起来得到系统范围内的值,从而计算出网络范围内的集合 ;之后将建立一种全面的信息流模式。
Gossip 协议最终的目的是将数据分发到网络中的每一个节点,那么在不同的具体应用场景中如何保证网络中的每一个节点都能够接收到对应的数据且在不稳定的网络环境中保持数据的实时同步,Gossip数据分发协议实现了两种数据传输方式:
1.推送方式(Push-based):
1.1 网络中的某个节点随机选择N个节点作为数据接收对象
1.2 该节点向其选中的N个节点传输相应的信息
1.3 接收到信息的节点处理它接收到的数据
1.4 接收到数据的节点再从第一步开始重复执行
1.拉取方式(Pull-based):
2.1 某个节点周期性地选择随机N个节点询问有没有最新的信息
2.2 收到请求的节点回复请求节点其最近未收到的信息
未经授权禁止转载、改编,转载请注明出处!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 技术指南:交易数据的存储
- 技术指南 | 基于区块链技术实现的学历信息征信系统-需求分析
- 技术指南:调用链码-设计业务层
- 技术指南 | Libra 技术解读!详解move语法、解释器和介绍器
- 技术指南:Fabric 网络环境启动过程详解
- 技术指南 | Plasma Cash区块结构的规范
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
代码大全(第2版)
[美] 史蒂夫·迈克康奈尔 / 金戈、汤凌、陈硕、张菲 译、裘宗燕 审校 / 电子工业出版社 / 2006-3 / 128.00元
第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初......一起来看看 《代码大全(第2版)》 这本书的介绍吧!