我正在开发一组应用程序,它们协同工作以创建一个用于处理计量数据的系统。我希望将它们松散耦合有几个原因,并且系统应该可由第三方扩展,因此应用程序将通过消息传递连接在一起。

我正在寻找一个消息系统,它提供(至少)C#、Java 和 Python 的绑定,并支持消息传递模式,如发布-订阅、保证交付、选择性消费者(如 .Net 消息传递中的 Peek)。

据我所知,JMS 或 .Net Messaging 没有任何问题,只是它们仅适用于 .Net / Java。

系统应该让我控制在设置通道时使用哪种传输机制(套接字、消息队列等)。我希望能够扩展到远程计算机并利用本地交通设施加快速度。

如果我找不到合适的东西,我就必须自己动手。我可能会使用 Google 的协议缓冲区进行序列化。如果有人对技术选择有其他建议,请走开。

哦,是的 - 我希望在每个通道或每个消息的基础上进行可选的加密。

预计到达时间:感谢您的快速回复。我现在正在研究文档和宣传。有人使用过以下技术吗?用途/结果如何?

有帮助吗?

解决方案

活跃的MQ

http://activemq.apache.org/cross-language-clients.html

支持以下所有协议

  • 开放线
  • 休息
  • 跺脚
  • WS通知
  • XMPP
  • AMQP

谢谢保罗

其他提示

SonicMQ可能是您正在寻找的工具。我知道他们很重视Progress,但他们也支持其他语言替代方案,并且是Messaging领域的领先者。

Sonic Software

正如Paul所说,尝试 ActiveMQ ,它支持多种语言客户端和电线协议

BTW ActiveMQ 6.x可能会使用Google的协议缓冲区作为其基础线传输之一:)

我在许多项目中使用Apache ActiveMQ取得了巨大成功。它是 most 受欢迎的和强大的开源消息代理今天。

顺便提一下,在.Net / C#上,ActiveMQ项目创建了 NMS API ,这是一个标准用于与.Net平台上的消息代理进行通信的API,现已集成到 Spring.Net

您是否考虑过 MPI

您可以使用 Mule 等ESB(企业服务总线)。这个想法是你以任何你想要的方式(JMS,http,电子邮件)将你的消息发送到总线,总线为你做路由。我不知道是否有.NET绑定,但即使没有任何可用,您也可以使用扩展机制构建自己的绑定。当然,这意味着您需要在某处设置公交车。

如果你想要坚如磐石的商业支持和几乎任何东西的集成,IBM的MQ系列,现在 Websphere MQ 提供了您的要求中描述的所有功能。

有时你得到你付的......; - )

如果您想要多语言“标准”, - 这意味着您不再使用像ActiveMQ,SonicMQ或WebsphereMQ这样的特定经纪人/中间人 - 我强烈建议您查看AMQP标准( http://www.amqp.org )及相关经纪人(RabbitMQ,QPid,OpenAMQ;参见 http://www.amqp.org/confluence/display/AMQP/AMQP+Products )。

Open Message Queue(Open MQ)包含在GlassFish应用程序服务器中并且还可以运行-单独。它在几秒钟内启动,并支持Java和C客户端。 Stomp支持目前正在4.4版本中开发。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top