Java 节间通讯机制

Java 节间通讯机制,java,cluster-computing,Java,Cluster Computing,我正在尝试制作一个Java集群,用于学习目的。我将使用TCP进行节点间通信。我遇到的问题是,我不确定如何连接到节点 这意味着,假设我有一个10节点的集群:每个节点都必须连接到所有其他节点吗?如果没有,这是如何做到的?它有多可靠 在我看来,与每个节点建立套接字连接效率很低 有人能告诉我正确的路径吗?避免每个节点通过单播连接连接到所有其他节点。如果这样做,所需的连接数等于(n²-n) 您可以做的是多播通信,例如与。 多播有缺点,例如,所有主机必须在同一子网中(除非您想弄乱TTL字段,我建议避免) 另

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

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

在我看来,与每个节点建立套接字连接效率很低


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

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

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


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

这是否要求所有节点都在同一个子网中?我知道这是UDP rite吗,那么高可用性可靠吗?Elliot谈到IP多播,与UDP无关。看见它对HA来说是可靠的,尽管我建议使用MessageBroker,请参见下面我的答案。