0

我们正在设计一个基于 jgroups 的集群节点消息传递系统的原型,它将取代基于 JDBC 的系统。我的组织中有很多人担心向已经很繁忙的网络添加更多的多播流量,所以我在 UDP/多播解决方案上遇到了一些阻力。

我知道 JGroups 可以仅配置为 TCP,但我不想在应用程序中强制执行配置步骤,在该应用程序中必须提前在配置文件中识别每个节点。

然后我想看看我们是否可以在这里获得混合工作,其中多播仅用于组成员身份操作(发现、心跳、故障检测),但消息传递都是基于 TCP 的。

但是,我在搜索中没有找到这样的示例,因此我质疑是否可以通过这种方式配置 JGroups。

可以吗,以及任何显示如何的示例配置?

谢谢!

4

1 回答 1

0

至于发现,使用 MPING 您可以做到这一点 - 它使用 IP 多播来发现新节点,尽管这些节点稍后会通过主传输(在您的情况下为 TCP)进行响应。

至于 FD/FD_ALL,我认为不可能,协议被设计为使用主要传输。您必须编写自己的FD协议,不应该那么复杂。

但是,如果您可以使用 UDP,那么您可能应该这样做。将消息发送到一个节点、多个节点还是全部由您决定 - 对于一个目的地,将使用单播 UDP,对于少数目的地(如果您设置任播选项)将使用多个单播,并且仅适用于所有节点UDP 将通过多播减少网络负载。这真的取决于应用程序,UDP 只允许多播。

于 2014-02-09T14:46:41.150 回答