我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。还欢迎提供有关任何其他有趣的消息队列的信息。
当前回答
文中对RabbitMQ ActiveMQ和QPID的特性和性能进行了比较 http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/
就我个人而言,以上三种方法我都试过了。在我看来,RabbitMQ的性能是最好的,但是它没有故障转移和恢复选项。ActiveMQ拥有最多的特性,但速度较慢。
更新: HornetQ也是一个你可以考虑的选项,它是JMS投诉,如果你正在寻找一个基于JMS的解决方案,一个比ActiveMQ更好的选择。
其他回答
很少有应用程序具有ActiveMQ这样多的调优配置。使ActiveMQ脱颖而出的一些特性是:
可配置预取大小。 可配置的线程。 可配置的故障转移。 可配置的管理通知生产者。 ... 细节:
http://activemq.net/blog http://activemq.apache.org
我没有使用ActiveMQ或RabbitMQ,但使用ZeroMQ。在我看来,ZeroMQ和ActiveMQ等之间的最大区别是0MQ是无代理的,并且没有内置消息传递的可靠性。如果您正在寻找一种易于使用、支持多种消息传递模式、传输、平台和语言绑定的消息传递API,那么0MQ绝对值得一看。如果您正在寻找一个成熟的消息传递平台,那么0MQ可能不适合。
有关如何使用0MQ的大量示例,请参阅www.zeromq.org/docs:cookbook。
我成功地使用0MQ在电力使用监控应用程序中传递消息(见http://rwscott.co.uk/2010/06/14/currentcost-envi-cc128-part-1/)
如果您也对商业实现感兴趣,您应该看看my-channels中的Nirvana。
Nirvana在金融服务行业中被广泛用于大规模低延迟交易和价格分销平台。
它支持企业、网络和移动领域的各种客户端编程语言。
集群功能非常高级,如果透明的HA或负载平衡对您很重要,那么值得一试。
出于开发目的,Nirvana可以免费下载。
文中对RabbitMQ ActiveMQ和QPID的特性和性能进行了比较 http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/
就我个人而言,以上三种方法我都试过了。在我看来,RabbitMQ的性能是最好的,但是它没有故障转移和恢复选项。ActiveMQ拥有最多的特性,但速度较慢。
更新: HornetQ也是一个你可以考虑的选项,它是JMS投诉,如果你正在寻找一个基于JMS的解决方案,一个比ActiveMQ更好的选择。
这实际上取决于您的用例。
比较0MQ与ActiveMQ或RabbitMQ是不公平的。 ActiveMQ和RabbitMQ是需要安装和管理的消息传递系统。 他们提供了比ZeroMQ更多的功能。他们有真正的持久队列,支持事务等。
ZeroMQ是一个轻量级的面向消息的套接字实现。它也适用于进程内异步编程。在ZeroMQ上运行“企业消息传递系统”是可能的,但您必须自己实现很多工作。
So:
ActiveMQ, RabbitMQ, Websphere MQ和MSMQ是“企业消息队列”
ZeroMQ是一个面向消息的IPC库。