我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。还欢迎提供有关任何其他有趣的消息队列的信息。
当前回答
在这篇博文的评论中有一些关于Twitter编写他们自己的消息队列的讨论,这可能会很有趣。
史蒂夫承受了很大的负荷和压力 ActiveMQ, RabbitMQ等的测试。 ActiveMQ实际上相当慢(非常慢) 比Kestrel慢),RabbitMQ 总是因为太多而崩溃 生产者和太少的消费者。
你可能不会有像twitter一样的初始加载:)
其他回答
There's a comparison between RabbitMQ and ActiveMQ here. Out of the box, ActiveMQ is configured to guarantee message delivery - which can give the impression its slow compared to less reliable messaging systems. You can always change the configuration for performance if you wish and get at least as good performance as any other messaging system. At least you have that option. There's a lot of information on the forums and the ActiveMQ FAQ for configuration for scaling, performance and high availability. Also, ActiveMQ will support AMQP 1.0 when the spec is finalized, together with other wire formats, like STOMP.
ActiveMQ的另一个优点是它是一个Apache项目,所以开发者社区是多样化的——而且它不局限于一家公司。
如果您也对商业实现感兴趣,您应该看看my-channels中的Nirvana。
Nirvana在金融服务行业中被广泛用于大规模低延迟交易和价格分销平台。
它支持企业、网络和移动领域的各种客户端编程语言。
集群功能非常高级,如果透明的HA或负载平衡对您很重要,那么值得一试。
出于开发目的,Nirvana可以免费下载。
比你想知道的更多的信息:
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
更新
只是在详细说明保罗在评论中补充的内容。上面提到的页面在2010年之后就消失了,所以阅读时要有所保留。3年里很多东西都变了。
我用的是zeroMQ。我想要一个简单的消息传递系统,我不需要复杂的代理。我也不想要一个巨大的面向Java的企业系统。
如果你想要一个快速、简单的系统,并且你需要支持多种语言(我使用C和。net),那么我建议你看看0MQ。
很少有应用程序具有ActiveMQ这样多的调优配置。使ActiveMQ脱颖而出的一些特性是:
可配置预取大小。 可配置的线程。 可配置的故障转移。 可配置的管理通知生产者。 ... 细节:
http://activemq.net/blog http://activemq.apache.org