技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网的?

简介: Gossip协议,又称“八卦算法”,是一种去中心化的分布式通信协议。它通过节点间周期性地随机交换状态信息,实现元数据的高效同步与最终一致性。其核心机制包括直接邮寄、反熵和谣言传播,适用于大规模动态集群中的故障检测与数据复制,具有高容错、低耦合、易扩展等优点。

Gossip协议,中文可译为“流言蜚语”“闲话”或“八卦”,形象地描述了该协议的工作方式——类似于人类社会中的信息传播模式。Gossip协议最早由Xerox公司的Palo Alto研究中心(PARC)在一篇论文中提出,论文中将其称为八卦算法或病毒算法(Epidemic Algorithm),但最终“Gossip”这一名称被接受并沿用至今。
Gossip协议是一种去中心化的分布式协议,旨在实现多个节点之间的状态信息共享。其核心思想是通过随机选择节点进行信息交换,逐步将状态数据传播到整个系统。
在分布式系统中,元数据(Metadata)是描述系统状态的关键信息,例如节点负责的数据范围、主从关系、节点健康状态(是否故障)等。Gossip协议通过周期性的、轻量级的通信机制,确保这些元数据能够在节点间高效、可靠地同步。

Gossip 的基本工作模式
1)周期性活动: 每个节点定期(例如每秒)启动一轮Gossip。
2)随机对等选择: 节点从其已知的集群成员列表中随机选择一个或少数几个目标节点(通常是k个,k远小于总节点数N)。
3)信息交换: 节点向选中的目标节点发送其持有的部分或全部信息(例如,自身状态、已知的其他节点状态、元数据更新等),并从目标节点接收类似信息。
4)状态合并与更新: 节点根据接收到的信息更新本地状态。例如,如果收到的信息版本更新,则采纳新信息。

Gossip 的信息传播方式变体
Gossip协议主要是通过直接邮寄、反熵和谣言传播三种方式来实现数据的最终一致性。

直接邮寄
直接邮寄(Direct mail),当一个节点自身状态发生重要更新时(例如,它检测到一个新数据),它主动将这个更新推送给随机选择的邻居。这是信息快速传播的一种方式,但不保证送达。
如图所示:当节点A的数据更新时,会直接将新数据传给节点B、节点C,然后各个节点再更新自己的数据。

image.png

需要说明的是:当队列溢出或长时间无法访问其目的地时,消息可能会被丢弃,也就是说,只采用直邮的方式是无法实现最终一致性的。

反熵
反熵(Anti entropy/ Pull or Push-Pull style),中的熵是指混乱程度,在此处,熵可以理解成不同节点中数据的差异性。反熵就是指消除混乱程度,提升节点间数据的相似度,降低熵值。反熵主要有推、拉和推拉三种方式。

image.png

1)推方式,节点A定期选择节点B,将A的所有(或部分摘要)数据推送给B,让B修复其与A不一致的部分。

image.png

2)拉方式,节点A定期选择节点B,从B拉取其所有(或部分摘要)数据,修复A自身与B不一致的部分。

image.png

3)推拉方式,节点A选择节点B,双方交换数据并各自修复差异。这是最常见和鲁棒的方式。

image.png

反熵通过异步方式修复数据差异,可以实现“最终一致性”,但是,节点之间需要相互交换和比较数据,如果集群节点数比较多且动态变化,代价就成直线上升(比如k8s环境中检测节点故障,并动态维护集群节点状态)。因此,反熵方式适合节点数固定且有限的集群实现数据一致性。

谣言传播
谣言传播(Rumor mongering/ Hot-stuff Propagation),当一个节点有“新”信息(谣言)时,它会积极地向其他节点传播。如果一个节点收到了它之前未曾听闻的谣言,它也会变成一个活跃的传播者,继续向外散播。为了避免谣言无限传播,可以设置传播次数上限,或者当一个节点发现其大多数邻居都已经知道这个谣言时,它就停止主动传播,转为仅在被询问时才告知(即从“活跃”转为“被动”)。

// 定期执行,先随机选择集合S中的s1
// s1再随机选取集合S中的任意其他节点
// 不断解决两两之间的数据冲突
// 最终整个集合中的对象都会达成数据一致性
FOR SOME s1 belong to S DO
   ResolveDifference[S,s1)
 END LOOP

如图所示,当节点A有新数据时,会成为活跃节点,然后向集群中节点B,节点E传播该数据,节点C收到新数据之后也变成了活跃节点,然后向节点D传播新数据,这样其他节点都能更新到新数据。

image.png

未完待续

很高兴与你相遇!如果你喜欢本文内容,记得关注哦!!!

目录
相关文章
|
1月前
|
人工智能 安全 API
近期 AI 领域的新发布所带来的启示
2024 年以来,AI 基础设施的快速发展过程中,PaaS 层的 AI 网关是变化最明显的基建之一。从传统网关的静态规则和简单路由开始,网关的作用被不断拉伸。用户通过使用网关来实现多模型的流量调度、智能路由、Agent 和 MCP 服务管理、AI 治理等,试图让系统更灵活、更可控、更可用。国庆期间 AI 界发布/升级了一些产品,我们在此做一个简报,从中窥探下对 AI 网关演进新方向的启示。
300 27
|
29天前
|
自然语言处理 测试技术 API
通义Qwen3-Max:大就是好
通义千问Qwen3-Max正式发布,参数超1T,训练稳定高效,在代码、推理、多语言等任务中表现卓越。预览版已登顶LMArena榜单前三,支持阿里云百炼API调用与Qwen Chat体验,敬请试用。
1230 32
|
2月前
|
人工智能 运维 安全
配置驱动的动态 Agent 架构网络:实现高效编排、动态更新与智能治理
本文所阐述的配置驱动智能 Agent 架构,其核心价值在于为 Agent 开发领域提供了一套通用的、可落地的标准化范式。
554 57
|
存储 人工智能 安全
智存跃迁,阿里云存储面向 AI 升级全栈数据存储能力
一文总览阿里云存储产品创新与进展!
474 0
|
29天前
|
前端开发 JavaScript API
JSAR 交互式菜单开发实战:打造沉浸式 3D 导航体验
本文介绍如何使用JSAR框架在Rokid智能眼镜上开发3D交互式菜单系统。通过Babylon.js创建按钮、动态纹理与动画,结合空间计算实现沉浸式导航体验,涵盖多视图切换、信息面板与手势适配,助力打造直观高效的AR界面。
|
2月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
686 36
|
2月前
|
人工智能 测试技术 开发工具
如何将 AI 代码采纳率从30%提升到80%?
AI编码采纳率低的根本原因在于人类期望其独立完成模糊需求,本文提出了解决之道,讲解如何通过结构化文档和任务拆解提高AI的基础可靠性。
832 24
|
1月前
|
人工智能 安全 中间件
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,推出AgentScope-Java、AI MQ、Higress网关、Nacos注册中心及可观测体系,全面开源核心技术,构建分布式多Agent架构基座,助力企业级AI应用规模化落地,推动AI原生应用进入新范式。
320 26
|
24天前
|
安全 Java 数据库连接
一把锁的两种承诺:synchronized如何同时保证互斥与内存可见性?
临界区指多线程中访问共享资源的代码段,需通过互斥机制防止数据不一致与竞态条件。Java用`synchronized`实现同步,保证同一时刻仅一个线程执行临界区代码,并借助happens-before规则确保内存可见性与操作顺序,从而保障线程安全。
99 11