跨平台、跨语言的消息系统?

发布于 2024-07-07 23:08:40 字数 536 浏览 5 评论 0原文

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

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

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

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

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

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

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

I'm developing a set of applications that work together to create a system for processing metering data. There's several reasons I want to have them loosely coupled and the system should be extensible by third parties, so the apps will be tied together via messaging.

I'm looking for a messaging system that offers bindings in (at least) C#, Java and Python and supports messaging patterns like Publish-Subscribe, Guaranteed Delivery, Selective Consumer (like Peek in .Net Messaging).

As far as I could find out, there's nothing wrong with JMS or .Net Messaging, it's just that they are for .Net / Java only.

The system should give me control over which transport mechanism (Sockets, Message Queues, etc.) to use when setting up a channel. I want to be able to both scale out to remote machines and speed things up with local transport facilities.

If I can't find anything suitable, I'll have to roll my own. I'd probably use Google's protocol buffers for serialization. If anybody has other recommendations for technology options, fire away.

Oh, yes - and I would like to have optional encryption on a per-channel or per-message basis.

ETA: Thanks for all the quick replies. I'm working my way through the docs & propaganda now. Has anybody used the technologies below, and for what / with what results?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

早乙女 2024-07-14 23:08:40

activemq

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

支持以下所有协议

  • OpenWire
  • REST
  • Stomp
  • WS 通知
  • XMPP
  • AMQP

谢谢
保罗

activemq

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

Supports all the following protocols

  • OpenWire
  • REST
  • Stomp
  • WS Notification
  • XMPP
  • AMQP

Thanks
Paul

纸短情长 2024-07-14 23:08:40

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

索尼克软件

SonicMQ might be a tool you're looking for. I know they are heavy into Progress but that they also support other language alternatives as well and are a leading player in the Messaging sector.

Sonic Software

牛↙奶布丁 2024-07-14 23:08:40

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

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

我已经在许多项目中使用 Apache ActiveMQ 并取得了巨大成功。 它是 当今流行且功能强大的开源消息代理。

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

As Paul mentioned, try ActiveMQ which supports many language clients and wire protocols.

BTW ActiveMQ 6.x will probably be using Google's protocol buffers as one of its underlying wire transports :)

I've used Apache ActiveMQ on many projects to great success. Its the most popular and powerful open source message broker around today.

Incidentally on .Net / C# the ActiveMQ project has created the NMS API which is a standard API for communicating with message brokers on the .Net platform which is now integrated into Spring.Net

泅人 2024-07-14 23:08:40

您是否考虑过MPI

Have you considered MPI?

几度春秋 2024-07-14 23:08:40

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

You could use an ESB (Enterprise Service Bus) like Mule. The idea is that you send your messages to the Bus in any way you want (JMS, http, email) and the bus does the routing for you. I don't know if there are .NET bindings, but even if there aren't any available, you can build your own using an extension mechanism. Of course, this means you need to set up a bus somewhere.

花伊自在美 2024-07-14 23:08:40

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

有时你确实得到你付出的代价......;-)

If you want rock solid, commercial support and integration to just about anything, IBM's MQ Series, now Websphere MQ provides all the features described in your requirements.

Sometimes you do get what you pay for... ;-)

我的痛♀有谁懂 2024-07-14 23:08:40

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

If you want a multilanguage "standard" -- meaning you are not tied to using a specific broker / intermediary like ActiveMQ, SonicMQ, or WebsphereMQ -- I strongly suggest you look at the AMQP standard (http://www.amqp.org) and related brokers (RabbitMQ, QPid, OpenAMQ; see http://www.amqp.org/confluence/display/AMQP/AMQP+Products).

亢潮 2024-07-14 23:08:40

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

Open Message Queue (Open MQ) is included in the GlassFish application Server and also runs stand-alone. It starts up in a few seconds, and supports Java and C client. Stomp support is currently in development in version 4.4.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文