Java中不可靠网络使用哪种消息服务

Java中不可靠网络使用哪种消息服务,java,networking,jms,activemq,Java,Networking,Jms,Activemq,我有一个节点网络。节点必须能够相互发送消息。消息仅在节点之间发送(即不广播)。节点知道必须向其发送消息的节点的地址。节点不一定知道他们将从谁那里接收信息。某些节点(称为主节点)可能从大量节点(大于100k)接收消息并向其发送消息 我希望能够将持久消息从一个节点发送到另一个节点。即使在不可靠的网络上,我也希望这种情况异步发生。也就是说,我希望消息服务为我处理重新发送、确认等 我曾尝试将ActiveMQ与静态代理网络(在我的小设置中只有2个节点)一起使用,如中所述。这对于我的设置来说很好,但我预计将

我有一个节点网络。节点必须能够相互发送消息。消息仅在节点之间发送(即不广播)。节点知道必须向其发送消息的节点的地址。节点不一定知道他们将从谁那里接收信息。某些节点(称为主节点)可能从大量节点(大于100k)接收消息并向其发送消息

我希望能够将持久消息从一个节点发送到另一个节点。即使在不可靠的网络上,我也希望这种情况异步发生。也就是说,我希望消息服务为我处理重新发送、确认等

我曾尝试将ActiveMQ与静态代理网络(在我的小设置中只有2个节点)一起使用,如中所述。这对于我的设置来说很好,但我预计将有大约100k个节点与一个节点(称为main)关联,然后必须运行100k个代理才能将消息转发到所有关联的节点。所有节点都可能偶尔发送,主节点有时可能必须发送到其他几个(>10k)节点(注意:没有广播,因为它们都接收不同的消息)

在这张图片中可以看到我想象中使用的一种设置,其中圆柱体表示队列。这里每个节点都有一个入站队列和一个出站队列

可以使用什么技术来实现这一点,需要什么样的技术配置


这项技术必须与Java一起使用,并拥有免费的私人或学术许可证。

我从未遇到过一种现成的技术可以做到这一点


解决此问题的一种方法是,如您的示例所示,在内部使用队列(ActiveMQ),并在外部使用诸如Netty.io或Jersey(我没有使用Netty的经验,但已将Jersey用于类似的应用程序)之类的服务创建API。这需要一些编码,但这不是很好吗?:)

我从未遇到过一种现成的技术可以做到这一点


解决此问题的一种方法是,如您的示例所示,在内部使用队列(ActiveMQ),并在外部使用诸如Netty.io或Jersey(我没有使用Netty的经验,但已将Jersey用于类似的应用程序)之类的服务创建API。这需要一些编码,但这不是很好吗?:)

那么,您希望在不可靠的网络上建立可靠的通信,并且具有高可扩展性?你查过内蒂了吗?@nikolay kuznetsov谢谢你的评论我一定会查到内蒂的。回答你的问题:不,我以前没有考虑过。所以你想在不可靠的网络上建立可靠的通信,并且具有高可扩展性?你查过内蒂了吗?@nikolay kuznetsov谢谢你的评论我一定会查到内蒂的。回答你的问题:不,我以前没有考虑过。