我有一个节点网络。节点必须能够相互发送消息。消息只能从节点发送到节点(即没有广播)。节点知道他们必须发送消息的节点的地址。节点不一定知道他们将从谁那里接收。一些节点(称为主节点)可能接收消息并将消息发送到非常多的节点(> 100k)。哪个消息服务用于Java中不可靠的网络
我希望能够从一个节点发送持久性消息到另一个节点。即使在不可靠的网络上,我也希望这会异步发生。即我希望消息服务为我处理重发,确认等。
我已经尝试使用ActiveMQ与经纪人的静态网络(在我的小设置中只有2个节点),如在http://activemq.apache.org/networks-of-brokers.html中所解释的。这对我的设置工作正常,但我预计将有大约100k节点与单个节点(称为主节点)相关联,然后必须运行100k代理才能将消息转发到所有关联的节点。所有节点可能偶尔发送,主节点有时可能必须发送到其他节点的几个(> 10k)(注意:没有广播,因为它们都收到不同的消息)。
我想象中使用的一个设置可以在这张图片http://i154.photobucket.com/albums/s260/sheep_p/communication.png中看到,其中柱面表示队列。这里每个节点都有一个入站队列和一个出站队列。
什么技术可以用来实现这一点,需要什么样的配置这种技术?
该技术必须与Java协同工作并拥有免费的私人或学术许可。
所以你想通过不可靠的网络建立可靠的通信和高可扩展性?你有没有检查netty? –
@ nikolay-kuznetsov感谢评论我一定会看看netty。回答你的问题:不,我以前没有考虑过。 – abondoa