Kafka:scala 分布式消息服务.用于日志处理的分布式消息队列,特点,日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为以及系统运行日志。天生分布式。kafka同时支持离线和在线日志处理。消息必须先持久化,然后按顺序消费。仅支持topic.kafka以topic来进行消息管理,每个topic包含多个part(ition),每个part对应一个逻辑log,有多个segment组成.每个part在内存中对应一个index,记录每个segment中的第一条消息偏移 -->吞吐量大
RabbitMQ:erlanng 是AMQP协议领先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于很多场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也比较大-->适合企业级开发 稳定
ActiveMQ:java 居于两者之间,类似于ZemoMQ,它可以部署于代理模式和P2P模式。类似于RabbitMQ:java 它易于实现高级场景,而且只需付出低消耗。它被誉为消息中间件的“瑞士军刀”。
Apollo:java ActiveMQ原型为基础,是一个更快、更可靠、更易于维护的消息代理工具。Apache称Apollo为最快、最强健的STOMP(Streaming Text Orientated Message Protocol,流文本定向消息协议)服务器.--->整体一般。
RedisMQ:C++ 是一个Key-Value的NoSQL数据库.但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用.入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis.-->mq是扩展功能,可以尝试.
http://blog.csdn.net/chszs/article/details/8479072
http://blog.csdn.net/nightelve/article/details/16827465
http://www.oschina.net/news/17973/message-queue-shootout
http://nodex.iteye.com/blog/1997750