【问题标题】:Which Message Service to use for unreliable network in Java哪个消息服务用于 Java 中的不可靠网络
【发布时间】:2012-11-15 18:59:25
【问题描述】:

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

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

http://activemq.apache.org/networks-of-brokers.html 中所述,我已尝试将 ActiveMQ 与代理的静态网络(在我的小设置中只有 2 个节点)一起使用。这适用于我的设置,但我预计将有大约 10 万个节点与一个节点(称为主节点)关联,然后必须运行 10 万个代理才能将消息转发到所有关联节点。所有节点都可能偶尔发送,主节点有时可能不得不发送到几个(>10k)其他节点(注意:没有广播,因为它们都收到不同的消息)。

我想象使用的一种设置可以在这张图片http://i154.photobucket.com/albums/s260/sheep_p/communication.png 中看到,其中圆柱体表示队列。这里每个节点都有一个入站和一个出站队列。

可以用什么技术来实现,需要对这个技术进行什么样的配置?

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

【问题讨论】:

  • 所以您想在不可靠的网络上建立可靠的通信并具有高可扩展性?你检查过netty吗?
  • @nikolay-kuznetsov 感谢您的评论,我一定会看 netty。回答你的问题:不,我以前没有考虑过。

标签: java networking jms activemq


【解决方案1】:

我从未遇到过可以做到这一点的开箱即用技术。

解决它的一种方法可能是在内部使用队列 (ActiveMQ),如您的插图所示,并使用 Netty.io 或 Jersey 等服务创建 API(我没有使用 Netty 的经验,但使用 Jersey 进行一个类似的应用程序),在外部。这虽然需要一些编码,但是不是很好吗? :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多