【问题标题】:Cross-platform, cross-language messaging system?跨平台、跨语言的消息传递系统?
【发布时间】:2010-09-20 11:51:02
【问题描述】:

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

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

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

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

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

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

ETA:感谢所有快速回复。我现在正在通过文档和宣传工作。有没有人使用过以下技术,为了什么/有什么结果?

【问题讨论】:

    标签: cross-platform ipc messaging


    【解决方案1】:

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

    Sonic Software

    【讨论】:

      【解决方案2】:

      你考虑过MPI吗?

      【讨论】:

        【解决方案3】:

        活跃的mq

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

        支持以下所有协议

        • OpenWire
        • 休息
        • 跺脚
        • WS 通知
        • XMPP
        • AMQP

        谢谢 保罗

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            如果您想要坚如磐石的商业支持和与任何事物的集成,IBM 的 MQ 系列,现在 Websphere MQ 可提供您需求中描述的所有功能。

            有时你确实得到你所支付的......;-)

            【讨论】:

              【解决方案6】:

              正如 Paul 提到的,试试 ActiveMQ,它支持多种语言客户端和有线协议。

              顺便说一句,ActiveMQ 6.x 可能会使用 Google 的协议缓冲区作为其底层线路传输之一:)

              我在许多项目中都使用了 Apache ActiveMQ,并取得了巨大的成功。它是当今的 most popular 和强大的开源消息代理。

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

              【讨论】:

                【解决方案7】:

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

                【讨论】:

                  【解决方案8】:

                  如果你想要一个多语言“标准”——这意味着你不依赖于使用特定的代理/中介,如 ActiveMQ、SonicMQ 或 WebsphereMQ——我强烈建议你查看 AMQP 标准 (http://www.amqp.org) 和相关代理(RabbitMQ、QPid、OpenAMQ;参见http://www.amqp.org/confluence/display/AMQP/AMQP+Products)。

                  【讨论】:

                    猜你喜欢
                    • 2011-06-22
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-10-13
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-04-21
                    相关资源
                    最近更新 更多