登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网 ...
技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网的?
[ 复制链接 ]
敞撬
2025-9-19 08:26:29
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
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,然后各个节点再更新自己的数据。
需要说明的是:当队列溢出或长时间无法访问其目的地时,消息可能会被丢弃,也就是说,只采用直邮的方式是无法实现最终一致性的。
反熵
反熵(Anti entropy/ Pull or Push-Pull style),中的熵是指混乱程度,在此处,熵可以理解成不同节点中数据的差异性。反熵就是指消除混乱程度,提升节点间数据的相似度,降低熵值。反熵主要有推、拉和推拉三种方式。
1)推方式,节点A定期选择节点B,将A的所有(或部分摘要)数据推送给B,让B修复其与A不一致的部分。
2)拉方式,节点A定期选择节点B,从B拉取其所有(或部分摘要)数据,修复A自身与B不一致的部分。
3)推拉方式,节点A选择节点B,双方交换数据并各自修复差异。这是最常见和鲁棒的方式。
反熵通过异步方式修复数据差异,可以实现“最终一致性”,但是,节点之间需要相互交换和比较数据,如果集群节点数比较多且动态变化,代价就成直线上升(比如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传播新数据,这样其他节点都能更新到新数据。
未完待续
很高兴与你相遇!如果你喜欢本文内容,记得关注哦!!!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
技术
绯闻
女孩
Gossip
如何
相关帖子
视野修炼-技术周刊第128期 | Bun 被收购
现代 CPU 技术发展
现代 CPU 技术发展
数据库如何处理大量的交易流水记录
如何实现 vxe-tree 树组件拖拽节点后进行二次确认提示
Oracle如何查询SEQUENCE的当前值而不增加SEQUENCE的值
[最优化技术] 3-1 黄金分割法
Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」
工作后如何进行持续学习
如何使用 vxe-gantt table 甘特图来实现多个维度视图展示
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
视野修炼-技术周刊第128期 | Bun 被收购
0
395
眸胝
2025-12-07
安全
现代 CPU 技术发展
0
29
顾星
2025-12-08
安全
现代 CPU 技术发展
0
29
琉艺戕
2025-12-08
业界
数据库如何处理大量的交易流水记录
2
388
柄利
2025-12-08
代码
如何实现 vxe-tree 树组件拖拽节点后进行二次确认提示
0
158
啪炽
2025-12-10
安全
Oracle如何查询SEQUENCE的当前值而不增加SEQUENCE的值
0
928
魁睥
2025-12-10
安全
[最优化技术] 3-1 黄金分割法
0
109
捡嫌
2025-12-11
业界
Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」
0
26
步雪卉
2025-12-12
安全
工作后如何进行持续学习
0
621
祖娅曦
2025-12-12
代码
如何使用 vxe-gantt table 甘特图来实现多个维度视图展示
0
774
晚能
2025-12-13
回复
(4)
列蜜瘘
2025-10-8 15:34:24
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
玻倌瞽
2025-10-10 00:38:48
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
绘纵
2025-10-25 00:47:02
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
奄蜊
2025-11-1 16:34:49
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
恿深疏
2025-11-13 04:36:44
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
敞撬
2025-11-13 04:36:44
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991123
4
xiangqian
638210
5
韶又彤
9999
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
631
玩转 | q群智能聊天机器人 —— MaiBot(麦
988
offline meta-RL | 近期工作速读记录
658
C#AI系列(5): C#离线实现高效OCR
192
这才是vibe coding正确的打开方式 - 手把手
543
huggingface_hub 1.0 正式版现已发布:开源
831
嵌入式系统内存魔法之分散加载
743
嵌入式系统内存魔法之分散加载
127
【Java】ThreadLocal源码解析
29
观察者模式,发布/订阅模式,与回调函数
698
用 GPT-5.2 Vibe Coding,做了一个可以“玩
935
上海专业防水补漏服务:国家一级资质,免费
355
基于深度学习的无人机视角检测系统演示与介
768
读书笔记 XILINX ug1137-Zynq UltraScale+
127
DBeaver 与 Excel JDBC 驱动(xlSql)使用说
931
【节点】[Adjustment-InvertColors节点]原
720
笔记 XILINX ug1085-Zynq UltraScale+ Devi
451
笔记 XILINX ug1085-Zynq UltraScale+ Devi
725
读书笔记 XILINX ug1085-Zynq UltraScale+
902
基于深度学习的船舶检测系统演示与介绍
442
吴恩达深度学习课程四:计算机视觉