啥是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/


目录
相关文章
|
7月前
|
算法 网络协议 网络架构
计算机网络-网络层:IP协议
【2月更文挑战第1天】
92 0
|
网络协议 应用服务中间件 网络性能优化
SIP协议是什么?
1,SIP是类似于HTTP的基于文本的协议。 2,SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,有关系统方面问题请找博主,看他名字一起交流学习。固定网运营商也会逐渐认识到SIP技术对于他们的深远意义 SIP(SessionInitiationProtocol,会话发起协议)是由IETF推出的一种用于建立、修改和终止多媒体会话的应用层控制协议。这些多媒体会话包括Internet多媒体会议、远程教育、Internet电话等。SIP侧重于将SIP网络电话作为互联网上的一个应用,所以SIP继承了互联网协议简单、开放、灵活的特点,既保证了对用户和会话的可管理性,
|
7月前
|
网络协议 网络架构
网络层 IP协议(1)
网络层 IP协议(1)
50 0
|
7月前
|
域名解析 存储 网络协议
IP协议(2) 和 数据链路层协议基础
IP协议(2) 和 数据链路层协议基础
34 0
|
网络协议 算法 数据安全/隐私保护
网络层——IP协议(二)
网络层——IP协议
93 0
|
7月前
|
网络协议 网络性能优化 网络安全
【计算机网络】IP协议
【计算机网络】IP协议
|
网络协议 算法 网络安全
【计算机网络】网络层IP协议
【计算机网络】网络层IP协议
106 0
|
网络协议 网络安全 网络架构
网络层——IP协议(一)
网络层——IP协议
111 0
|
网络协议 算法 网络架构
IP协议与以太网
本文主要介绍在TCP/IP五层协议模型中位于网络层和数据链路层的协议,在网络层主要是IP协议,而数据链路层的协议主要为以太网。
276 0
IP协议与以太网
|
域名解析 网络协议 算法
计算机网络【IP协议与以太网】
计算机网络【IP协议与以太网】
计算机网络【IP协议与以太网】