啥是Gossip协议? (下)

简介: 啥是Gossip协议? (下)

其他注意点


在这个网站上,最重要的就是它的动图模拟功能了,但是也不要忽略了它里面的其他部分的描述。

比如这一段话,我就觉得非常的重要。

image.png

这一段话里面提到了两个问题,我一个个的说。

首先它说在网站模拟的过程中,所有节点发送消息似乎都是同步的,就像有一个全局循环一样。

在模拟中这样做,是因为这样看起来更加的直观。

但是,在一个真正的 gossip 协议中,每个节点都有自己的周期,它们之间根本没有也不需要同步。

上面是说什么意思呢?

我再说的直白一点,每个节点往外同步消息的时候,是按照自己的周期来处理的,比如每 10 秒一次。根本就不关心其他节点什么时候触发同步消息的操作,只需要管好自己就行了。

第二问题我认为就很重要了:

How do the nodes know about each other?

节点之间怎么知道其他节点的存在的?

其中一个方式就是当节点加入集群时,必须知道该集群中的一个节点的信息。通过前面的动图我们知道,如果一个节点被另外一个节点知道,那么它最终也一定会被感染。

那问题就来了:新节点加入时又是如何知道集群中一个节点信息的呢?

很简单,我知道的一个方案就是人工指定。

Redis 集群采用的就是 gossip 协议来交换信息。当有新节点要加入到集群的时候,需要用到一个 meet 命令。

http://www.redis.cn/commands/cluster-meet.html

image.png


image.png


这里提到了另外一个模拟的网站:

https://www.serf.io/docs/internals/simulator.html

它可以通过控制这几个参数,来测算集群达成一致性的时间。


image.png

上面这个图表示的就是在信息交换频率(GOSSIP INTERVAL)为 0.2s,Fanout 节点数为 3,总节点数为 30,丢包率和节点失败率为 0 的这个情况。

在这个情况下,对应的到达最终一致性的时间图长这样:

image.png

基本上在一秒的时间就搞定了。

你也可以自己去修改一下参数,看看对应的时间图的变化。

比如,我只修改节点数,把它从 30 修改为 3000,时间图变成了这样:

image.png

在 1.75s 左右完成了收敛。

节点扩大 100 倍,但是时间增加不到 1s,确实是很优秀。

这玩意好是好,但是给你看个刺激的,来感受一下这恐怖的传播规模:

image.png

从动图中可以看出,前面一两次传播还好,至少眼睛还能看出个大概,但是到了后几轮,大多数节点都被感染了,但是还在继续对外传播消息。

这消息数量,简直是看的让人头皮发麻。



六度分隔理论


最后再说一个有意思的东西,叫做“六度分隔理论”:

1967年,哈佛大学的心理学教授Stanley Milgram想要描绘一个连结人与社区的人际连系网。做过一次连锁信实验,结果发现了“六度分隔”现象。简单地说:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。

六度分割理论,也叫小世界理论。这其实和 Gossip 协议也有千丝万缕的联系。

我在小破站上看到一个相关的视频,我觉得解释的还是挺清楚的,你如果有兴趣的话可以去看看:

https://www.bilibili.com/video/BV1b7411B7D2?t=31


image.png

在视频里面,有这样的一个画面:

网络异常,图片无法展示
|

好家伙,这不是我们前面的网站上面的翻版嘛,看起来可太亲切了。

这个理论刚刚提出来的时候还是“最多通过六个人你就能够认识任何一个陌生人”。

但是随着这几年社交网络的急速发展,地球都被拉小到了一个“村”的概念了。

所以这个数字在逐渐的减少:

网络异常,图片无法展示
|

而且如果把这个范围拉小一点,比如局限在程序员这个小范围内,那就更小了。

有时候拉个业务对接群,进去一看好家伙还有前同事,你说这个圈子能有多大。

image.png

本文已收录到个人博客,欢迎大家来玩。

https://www.whywhy.vip/


目录
相关文章
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
914 150
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1647 8
|
7天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
608 152
|
9天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
572 13
|
6天前
|
人工智能 前端开发 文件存储
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择
星哥带你玩转飞牛NAS,部署开源笔记TriliumNext!支持树状知识库、多端同步、AI摘要与代码高亮,数据自主可控,打造个人“第二大脑”。高效玩家的新选择,轻松搭建专属知识管理体系。
366 152
|
9天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
663 151