节点间通信机制

时间:2016-01-31 07:26:34

标签: java cluster-computing

我正在尝试创建一个用于学习目的的Java集群。我将使用TCP进行节点间通信。我遇到的问题是我不确定如何连接到节点。

这意味着,假设我有一个10节点集群:每个节点都必须连接到所有其他节点吗?如果没有,这是怎么做到的?它有多可靠?

与每个节点建立套接字连接对我来说效率很低。

有人能告诉我正确的道路吗?

1 个答案:

答案 0 :(得分:1)

避免每个节点使用单播连接连接到所有其他节点。如果你这样做,所需的连接数等于(n²-n)

您可以做的是多播通信,例如与Apache Tribes。 多播具有缺点,例如,所有主机必须在同一个子网中(除非你想弄乱TTL字段,我建议避免)。

另一种选择是使用RabbitMQActiveMQ之类的消息代理。另见JMS。在这种情况下,每个节点与消息代理建立常规单播连接,并读取和写入消息队列。在这种情况下,节点可以位于不同的子网中。我建议仔细看看这个选项。