广州总校区切换校区
图片
news

新闻资讯

分布式最终一致性算法

发布时间: 2022-11-10

分布式最终一致性算法以Gossip算法为基础进行设计,Gossip算法具有简单和高效的特征,同时具有很好的可扩展性和鲁棒性,采用无中心化设计,能极大地避免集中式处理带来的资源占用过高问题。

基于Gossip的分发协议具有良好的扩展性和鲁棒性,适用于一致性要求不高场景中的同步信息。当一个节点要发送消息时,并不将消息发送给某个服务器,而是发送给一些随机选择的对等节点;这些节点收到消息后,重复同样过程,再将消息转发给随机选择的节点。本质上,Gossip协议是基于冗余和随机机制来克服潜在的节点和链路失效的。

目前,流行的Gossip模型是反熵模型。该模型中,节点P随机选取另一节点Q,并与Q交换更新信息。交换信息具体方法有以下3种:

①基于推(push)的方法:P仅将自身更新信息发送到Q;

②基于拉(pull)的方法:P仅从Q获得更新信息;

③基于推/拉(push/pull)的方法:P和Q相互发送更新信息给对方。

Gossip协议的冗余通信会对网络带宽和CPU资源带来巨大负载,这些负载限制了通信频率,通信频率又影响着算法收敛速度。因此,Gossip算法中应尽量避免冗余通信,减少负面影响。

针对Gossip协议存在冗余通信导致的通信带宽和CPU占用较多的问题,对Gossip协议的数据同步方式进行了改进,将强一致性算法获取的控制器节点信息注入Gossip协议中,减少Gossip协议的冗余通信。

Gossip为随机更新的策略,通过消息发出概率判断是否发送消息。针对策略的随机性,通过向其中引入最近更新时长、数据状态改变量等信息,影响消息发送的概率,加快数据一致性同步。

针对协议中的push/pull的信息交互,实现节点信息的一致性,设计通信协议消息。具体消息类型与流程如下:

(1)推送消息

将本节点数据摘要信息广播到对端,数据格式为(key,version)。

(2)接收信息

接收端收到推送消息中的摘要信息,对比本地信息与收到的摘要信息,将本地版本更新的数据以格式(key,value,version)推送到推送消息发送节点。

(3)反馈消息

节点收到返回的接收消息后,更新本地数据,并将比对端新的数据消息反馈到对端,对端依据反馈消息更新本地数据。

上一篇: 弹性通信网络认知面的工作原理

下一篇: 分布式强一致性算法

<
在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!