首页 > 其他分享 >Gossip协议

Gossip协议

时间:2023-01-18 13:00:27浏览次数:46  
标签:协议 副本 实现 反熵 一致性 Gossip 数据 节点

1.概述

Gossip 协议,顾名思义,就像流言蜚语一样,利用一种随机、带有传染性的方式,将信息传播到整个网络中,并在一定时间内,使得系统内的所有节点数据一致。对你来说,掌握这个协议不仅能很好地理解这种最常用的,实现最终一致性的算法,也能在后续工作中得心应手地实现数据的最终一致性。

2.直接邮寄

就是直接发送更新数据,当数据发送失败时,将数据缓存下来,然后重传。从图中你可以看到,节点 A 直接将更新数据发送给了节点 B、D。
image.png
在这里我想补充一点,直接邮寄虽然实现起来比较容易,数据同步也很及时,但可能会因为
缓存队列满了而丢数据。也就是说,只采用直接邮寄是无法实现最终一致性的

3.反熵

那如何实现最终一致性呢?答案就是反熵。
本质上,反熵是一种通过异步修复实现最终一致性的方法。常见的最终一致性系统(比如 Cassandra),都实现了反熵功能。反熵中的熵是指混乱程度,反熵就是指消除不同节点中数据的差异,提升节点间数据的相似度,降低熵值。
反熵指的是集群中的节点,每隔段时间就随机选择某个其他节点,然后通过互相交换自己的所有数据来消除两者之间的差异,实现数据的最终一致性。
在实现反熵的时候,主要有推、拉和推拉三种方式。
image.png

3.1 推

推方式,就是将自己的所有副本数据,推给对方,修复对方副本中的熵:
image.png

3.2 拉

拉方式,就是拉取对方的所有副本数据,修复自己副本中的熵:
image.png

3.3推拉

理解了推和拉之后,推拉这个方式就很好理解了,这个方式就是同时修复自己副本和对方副本中的熵:
image.png
另外需要你注意的是,因为反熵需要节点两两交换和比对自己所有的数据,执行反熵时通讯成本会很高,所以我不建议你在实际场景中频繁执行反熵,并且可以通过引入校验和(Checksum)等机制,降低需要对比的数据量和通讯消息等。

4.谣言传播

虽然反熵很实用,但是执行反熵时,相关的节点都是已知的,而且节点数量不能太多,如果是一个动态变化或节点数比较多的分布式环境(比如在 DevOps 环境中检测节点故障,并动态维护集群节点状态),这时反熵就不适用了。那么当你面临这个情况要怎样实现最终一致性呢?答案就是谣言传播。
image.png
从图中你可以看到,节点 A 向节点 B、D 发送新数据,节点 B 收到新数据后,变成活跃节点,然后节点 B 向节点 C、D 发送新数据。其实,谣言传播非常具有传染性,它适合动态变化的分布式系统。

标签:协议,副本,实现,反熵,一致性,Gossip,数据,节点
From: https://www.cnblogs.com/akai-yuan/p/17059579.html

相关文章

  • 【技术指北】通过SMB协议在iOS和Windows之间传输文件
    windows操作新建文件夹设置文件夹的属性,选择共享设置高级共享,权限选择完全控制选择共享,选择Everyonecmd-ipcofig,获取ipv4地址iOS操作打开文件管理器选择连接......
  • 网络分层,网络协议TCP/IP模型,OSI模型
    TCP\IP模型是多种协议的综合,4层模型(也有说5层的)。其中最重要的就是分层结构和主要协议。1.应用层(SMTP,HTTP,FTP)2.传输层(TCP,UDP)3.网络互联层(IPv4,IPv6)4.网络接口层(链路层)应......
  • SSL和TLS协议如何提供身份验证、机密性和完整性
    SSL和TLS协议使两方能够相互识别和验证,并以机密性和数据完整性进行通信。SSL和TLS协议通过Internet提供通信安全性,并允许客户端/服务器应用程序以保密和可靠的方式......
  • 4.Requests【HTTP协议】响应
    一、前言当然,有请求就有响应,浏览器在接收到服务端的响应数据后,经过处理将有用的信息展示到浏览器上。所以,接口自动化也需要对响应内容进行解析或提取有用的数据。二、学......
  • 2.Requests【HTTP协议】http协议简介
    一、前言什么是接口?接口就是HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器......
  • 3.Requests【HTTP协议】请求
    一、前言我们上节课总体了解了http协议的相关概念,这节课我们专门针对请求做详细讲解。我们做接口自动化,其实就是通过requests模块模拟浏览器向服务器发送请求,来获取服务器......
  • 网络协议-session+cookie
    (1)当客户端PC的浏览器第一次访问某个web站点资源时,客户端提交没有带SessionID的请求(请求报文头没有Cookie头域信息)。而web服务器会检查是否有SessionID过来,没有则创建Sess......
  • 网络协议-http访问网站
    (1)HTTP访问网站简要描述:1.在无任何缓存的情况下,先通过DNS服务器来解析域名对应的IP地址;2.PC的浏览器通过解析出来的服务器地址与服务器发起TCP三次握手建立TCP会话;3......
  • 真正“搞”懂HTTP协议08之重定向
    我们知道,用来传输页面的协议就是HTTP协议,全称是超文本传输协议,而浏览器展示的页面则是用HTML编写的,HTML的全称则是超文本标记语言。你看,都叫做超文本,我在第一篇文章的......
  • AXI 协议翻译介绍
    一、介绍Introduction本章描述了axis协议的体系结构和协议定义的基本事务。它包含以下部分:•第1-2页关于AXI协议•第1-3页是架构•第1-7页是基本事务•第1-11页的附加功......