我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。还欢迎提供有关任何其他有趣的消息队列的信息。
当前回答
我在这里写了关于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可以免费下载。
我在这里写了关于AMQP, Qpid和ZeroMQ的初步经验:http://ron.shoutboot.com/2010/09/25/is-ampq-for-you/
我的主观意见是,如果您确实需要持久消息传递工具,并且不太担心代理可能成为瓶颈,那么AMQP是不错的选择。此外,c++客户端目前缺少AMQP (Qpid没有赢得我的支持;但不确定ActiveMQ客户端),但可能正在进行中。ZeroMQ可能是另一种方式。
为什么你错过了Sparrow, Starling, Kestrel, Amazon SQS, Beanstalkd, Kafka, IronMQ ?
消息队列服务器
消息队列服务器支持多种语言,Erlang (RabbitMQ)、C (beanstalkd)、Ruby (Starling或Sparrow)、Scala (Kestrel、Kafka)或Java (ActiveMQ)。一个简短的概述可以在这里找到
麻雀
作者:亚历克斯·麦考 Sparrow是一个用Ruby编写的轻量级队列,它“讲memcache”
燕八哥
布莱恩·库克(Blaine Cook)在Twitter上写道 Starling是基于MemCached的消息队列服务器 Ruby编写 在内存中存储作业(消息队列) 文档:一些好的教程,例如关于八哥鸟和工作的railscast或关于八哥鸟的这篇博客文章
红隼
罗比·波因特著 用Scala编写的Starling克隆(将Starling从Ruby移植到Scala) 队列存储在内存中,但记录在磁盘上
RabbitMQ
RabbitMQ是Erlang中的消息队列服务器 在内存中存储作业(消息队列)
Apache ActiveMQ
ActiveMQ是Java中的开源消息代理
Beanstalkd
由Philotic, Inc.编写,以提高Facebook应用程序的响应时间 内存工作队列服务主要是用C语言编写的 Docu: http://nubyonrails.com/articles/about-this-blog-beanstalk-messaging-queue
Amazon SQS
亚马逊简单排队服务
卡夫卡
在LinkedIn上用Scala编写 LinkedIn用于卸载所有页面和其他视图的处理 默认使用持久化,对热数据使用OS磁盘缓存(启用持久化后吞吐量比上述任何一个都高) 支持在线和离线处理
ZMQ
作为并发框架的套接字库 对于集群产品和超级计算来说,比TCP更快 在inproc, IPC, TCP和组播之间传递消息 通过fanout, pubsub, pipeline, request-reply连接n到n 用于可伸缩的多核消息传递应用程序的异步I/O
鹰云
EagleMQ是一个开源、高性能、轻量级的队列管理器。 C语言编写 将所有数据存储在内存中并支持持久性。 它有自己的协议。支持使用队列、路由和通道。
IronMQ
IronMQ Go语言编写 全管理队列服务 云版本和内部版本都可用
我希望这对我们有所帮助。 源
很少有应用程序具有ActiveMQ这样多的调优配置。使ActiveMQ脱颖而出的一些特性是:
可配置预取大小。 可配置的线程。 可配置的故障转移。 可配置的管理通知生产者。 ... 细节:
http://activemq.net/blog http://activemq.apache.org
这实际上取决于您的用例。
比较0MQ与ActiveMQ或RabbitMQ是不公平的。 ActiveMQ和RabbitMQ是需要安装和管理的消息传递系统。 他们提供了比ZeroMQ更多的功能。他们有真正的持久队列,支持事务等。
ZeroMQ是一个轻量级的面向消息的套接字实现。它也适用于进程内异步编程。在ZeroMQ上运行“企业消息传递系统”是可能的,但您必须自己实现很多工作。
So:
ActiveMQ, RabbitMQ, Websphere MQ和MSMQ是“企业消息队列”
ZeroMQ是一个面向消息的IPC库。