Cluster computing IaaS节点如何通信以形成集群?

Cluster computing IaaS节点如何通信以形成集群?,cluster-computing,akka,iaas,Cluster Computing,Akka,Iaas,在IaaS环境中,节点如何相互通信,或者如何(以分散的方式)相互感知?例如:描述了一个1500多个分散集群的随机交互。这个过程的概要是什么?详细解释Akka集群是如何工作的可能需要很长时间,但我可以试着给出一个概述 Akka的会员设置本质上是一个高度专业化的CRDT。因为谈论向量时钟本身将是一个冗长的讨论,所以我将使用类似git的存储库的类比 您可以想象每个Akka节点都维护自己的存储库,其中HEAD指向集群的当前状态(该节点已知)。当一个节点引入更改时,它会分支,并开始将更改传播到其他节点(这

在IaaS环境中,节点如何相互通信,或者如何(以分散的方式)相互感知?例如:描述了一个1500多个分散集群的随机交互。这个过程的概要是什么?

详细解释Akka集群是如何工作的可能需要很长时间,但我可以试着给出一个概述

Akka的会员设置本质上是一个高度专业化的CRDT。因为谈论向量时钟本身将是一个冗长的讨论,所以我将使用类似git的存储库的类比

您可以想象每个Akka节点都维护自己的存储库,其中HEAD指向集群的当前状态(该节点已知)。当一个节点引入更改时,它会分支,并开始将更改传播到其他节点(这部分或多或少是随机的)

有一些我们称之为单调的变化,在git的类比中,这意味着分支是可以合并的。当其他节点接收到这些更改时,这些更改只会被其他节点合并,然后它们会将合并提交传播给其他节点,最终所有内容都会稳定下来(头部指向相同的内容)

还有其他种类的变化,这些变化对合并来说不是微不足道的(非单调的)。然后,这个过程是节点首先发送一个建议:“我想做这个非常重要的更改”。这是必要的,因为其他节点需要意识到这一未决的“复杂”更改并做好准备。这将在节点之间传播,直到每个人都收到它。现在我们所处的状态是“人人都知道有人提议改变C”,但这还不够,因为实际上还没有人意识到已经达成了协议

因此,还有另一个“回合”,节点开始传播信息“I,节点Y,知道已经提出了变更C”。最终,一个或多个节点意识到存在一个协议(这或多或少是一个分布式确认协议)。因此,现在的状态是“至少一个节点知道每个节点都知道已经提出了更改C”。这(部分)就是我们所说的趋同。此时,知道该协议的节点将进行合并并传播该协议


请注意,我在这里高度简化了解释,很明显,魔鬼(和缩放)在细节中:)

在分散的环境中,节点如何意识到其他节点?我认为他们必须知道与之通信的节点。在集中式环境中,我可以想象节点查询“中心”以获得随机节点“地址”,然后使用该地址发送消息。这在分散的集群中是如何发生的?种子节点+流言。请阅读。