开源mq比较汇总

分布式消息队列对比:Kafka、RabbitMQ、ZeroMQ、ActiveMQ、Apollo、RedisMQ、MemcacheQ

Kafka:scala 分布式消息服务.用于日志处理的分布式消息队列,特点,日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为以及系统运行日志。天生分布式。kafka同时支持离线和在线日志处理。消息必须先持久化,然后按顺序消费。仅支持topic.kafka以topic来进行消息管理,每个topic包含多个part(ition),每个part对应一个逻辑log,有多个segment组成.每个part在内存中对应一个index,记录每个segment中的第一条消息偏移 -->吞吐量大


RabbitMQ:erlanng 是AMQP协议领先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于很多场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也比较大-->适合企业级开发 稳定


ZeroMQ:C++ 非常轻量级的消息系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常可以发现它,ZeroMQ支持许多高级消息场景,但是你必须实现ZeroMQ框架中的各个块(比如Socket或Device等)。ZeroMQ非常灵活,但是你必须学习它的80页的手册。--->是一个网络库,很多高级特性需自己开发,速度最快

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是扩展功能,可以尝试.


MemcacheQ:C++ 持久化消息队列memcacheq(简称mcq)是一个轻量级的消息队列.-->mq是扩展功能,处理速度快,并发性能好,与memcache的协议兼容。这就意味着只要装了memcache的extension就可以了,不需要额外的插件/可以尝试.


http://blog.youkuaiyun.com/chszs/article/details/8479072
http://blog.youkuaiyun.com/nightelve/article/details/16827465
http://www.oschina.net/news/17973/message-queue-shootout
http://nodex.iteye.com/blog/1997750
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值