我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。还欢迎提供有关任何其他有趣的消息队列的信息。


当前回答

到目前为止,我已经在生产环境中使用ActiveMQ大约3年了。虽然它完成了工作,但排列正常工作且没有错误的客户端库版本可能是一个问题。我们目前正在考虑过渡到RabbitMQ。

其他回答

我在这里写了关于AMQP, Qpid和ZeroMQ的初步经验:http://ron.shoutboot.com/2010/09/25/is-ampq-for-you/

我的主观意见是,如果您确实需要持久消息传递工具,并且不太担心代理可能成为瓶颈,那么AMQP是不错的选择。此外,c++客户端目前缺少AMQP (Qpid没有赢得我的支持;但不确定ActiveMQ客户端),但可能正在进行中。ZeroMQ可能是另一种方式。

如果您也对商业实现感兴趣,您应该看看my-channels中的Nirvana。

Nirvana在金融服务行业中被广泛用于大规模低延迟交易和价格分销平台。

它支持企业、网络和移动领域的各种客户端编程语言。

集群功能非常高级,如果透明的HA或负载平衡对您很重要,那么值得一试。

出于开发目的,Nirvana可以免费下载。

这实际上取决于您的用例。

比较0MQ与ActiveMQ或RabbitMQ是不公平的。 ActiveMQ和RabbitMQ是需要安装和管理的消息传递系统。 他们提供了比ZeroMQ更多的功能。他们有真正的持久队列,支持事务等。

ZeroMQ是一个轻量级的面向消息的套接字实现。它也适用于进程内异步编程。在ZeroMQ上运行“企业消息传递系统”是可能的,但您必须自己实现很多工作。

So:

ActiveMQ, RabbitMQ, Websphere MQ和MSMQ是“企业消息队列”

ZeroMQ是一个面向消息的IPC库。

ZeroMQ真的是零队列!这真是个错误!它没有队列、主题、持久性,什么都没有!它只是套接字API的中间件。如果它是你看起来很酷!否则就忘了它吧!它不像activeMQ或rabbitmq。

我用的是zeroMQ。我想要一个简单的消息传递系统,我不需要复杂的代理。我也不想要一个巨大的面向Java的企业系统。

如果你想要一个快速、简单的系统,并且你需要支持多种语言(我使用C和。net),那么我建议你看看0MQ。