节点如何相互沟通,或者他们如何在IaaS环境中以分散的方式了解对方?作为一个例子:this article about Akka on Google's IaaS描述了一个1500+分散的群集随机互通。这个过程的概要是什么?IaaS节点如何通信以形成群集?
0
A
回答
2
解释Akka集群如何工作将会很长,但我可以尝试给出一个概述。
在Akka设置的会员资格本质上是一个高度专业化的CRDT。由于谈论矢量时钟本身将是一个漫长的讨论,我将使用类似git的存储库。
您可以想象每个Akka节点都维护自己的存储库,其中HEAD指向群集的当前状态(该节点已知)。当一个节点引入一个变化时,它会分支出去,并开始将变化传播到其他节点(这部分或多或少是随机的)。
有一些变化,我们称之为单调这在git比喻中意味着分支可以平分合并。这些更改只是在接收到其他节点时才会合并,然后他们会将合并提交传播给其他人,最终所有内容都会稳定下来(HEAD指向相同的内容)。 (非单调)。这个过程就是节点首先发送一个建议:“我想做这个不重要的变化C”。这是必要的,因为其他节点需要知道这个未决的“复杂”变化并准备好自己。这是在节点之间传播,直到每个人都收到它。现在我们处于“每个人都知道有人提出做出改变C”的状态,但这还不够,因为没有人真正意识到还有协议。
因此存在另一个“轮”,其中节点开始传播信息“I,节点Y,意识到已经提出改变C的事实”。最终,一个或多个节点意识到存在协议(这或多或少是分布式确认协议)。所以现在的状态是“至少有一个节点知道每个节点都知道改变C已经被提出”。这是(部分)我们称之为汇合。此时,知道该协议的节点(或多个节点)将进行合并并将其传播。
请注意,我高度简化的解释在这里,显然是魔鬼(和缩放)在细节:)
相关问题
- 1. 群集节点之间的通信
- 2. Hadoop 2节点群集通信查询
- 3. 如何测量Spark Standalone集群中节点之间的通信?
- 4. 节点群集
- 5. 确保rabbitmq群集节点通过ssl进行通信
- 6. 弹性搜索节点没有形成集群
- 7. 无法在Windows中形成两个节点的Cassandra集群?
- 8. Orleans集群通信
- 9. 节点群集和/或Docker群集?
- 10. 单节点群集在多节点群集上工作?
- 11. 将2节点cassandra集群转换为1节点集群
- 12. 如何从akka中检索分割区域形成不同的集群节点?
- 13. 如何使用.NET在MSCS集群节点之间进行协调/通信
- 14. 删除SQL群集节点
- 15. 2节点的Cassandra集群
- 16. 恢复oracle群集节点
- 17. 4节点集群查询
- 18. Hadoop多节点群集
- 19. Hazelcast群集更新节点
- 20. 监视节点群集
- 21. Hadoop的2节点集群
- 22. Cassandra集群与节点
- 23. cloudera群集节点角色
- 24. h2o群集多节点
- 25. RabbitMQ集群节点故障
- 26. Vertica C.E.集群节点号?
- 27. Cassandra集群单节点
- 28. 无法将另一个节点添加到现有节点以形成群集。无法将num_tokens更改为vnodes
- 29. MATLAB中集群的形成
- 30. 如何访问mesos http端点以获取集群信息
如何将节点分散的环境意识到其他节点?我认为他们必须意识到他们正在与之通信的节点。在一个集中的环境中,我会想象节点向“中心”查询随机节点“地址”,然后用它来发送消息。这是如何在分散的集群中发生的? –
种子节点+八卦。请阅读http://doc.akka.io/docs/akka/snapshot/common/cluster.html。 – sourcedelica