JGroups UDP用于成员身份,TCP用于消息传递?

JGroups UDP用于成员身份,TCP用于消息传递?,tcp,network-programming,udp,cluster-computing,jgroups,Tcp,Network Programming,Udp,Cluster Computing,Jgroups,我们正在原型化一个基于jgroups的集群节点消息传递系统,它将取代一个基于JDBC的系统。在我的组织中,有很多人都关心如何在已经繁忙的网络中添加更多的多播通信量,因此我对UDP/多播解决方案有一些抵触情绪 我知道JGroups可以配置为仅TCP,但我不想在应用程序中强制执行配置步骤,因为在配置文件中必须提前识别每个节点 然后我想看看我们是否能在这里得到一种混合的工作方式,其中多播仅用于组成员操作(发现、心跳、故障检测),但消息传递都是基于TCP的 然而,我在搜索中并没有找到这样的例子,因此我怀

我们正在原型化一个基于jgroups的集群节点消息传递系统,它将取代一个基于JDBC的系统。在我的组织中,有很多人都关心如何在已经繁忙的网络中添加更多的多播通信量,因此我对UDP/多播解决方案有一些抵触情绪

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

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

然而,我在搜索中并没有找到这样的例子,因此我怀疑JGroups是否可以这样配置

是否可以,以及任何显示如何配置的示例


谢谢

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

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

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