主流MQ对比

 

项目RabbitMQActiveMQRocketMQKafka
所属Mozila Public LicenseApacheAlibaba(已加入Apache)Apache
成熟度成熟成熟比较成熟成熟
授权方式开源
开发语言ErLangJavaJavaScala&Java
客户端支持语言官方支持ErLang, Java, Ruby等,社区支持多种APIJava, C, C++, Python, PHP, Perl, .NET等Java, C++(不成熟)官方支持Java,社区支持多语言
协议支持AMQP, STOMPOpenWire, STOMP, REST, XMPP, AMQP自有协议自有协议(基于TCP的二进制协议)
消息批量操作不支持支持
消息推拉模式多协议, Push/Pull均支持Pull
HAMaster/Salve模式, Master提供服务, Slave仅作备份基于ZooKeeper + LevelDB的Master + Slave模式支持多Master模式,多Master多Salve模式,异步复制模式,多Master多Slave同步双写模式支持Replica机制,Leader宕机后,备份自动顶替,并重新选举Leader(基于Zookeeper)
数据可靠性可以保证数据不丢失,有slave作备份Master/Slave支持异步实时刷盘,同步刷盘,同步复制,异步复制数据可靠,并且有Replica机制,有容灾容错能力
单机吞吐量万级万级十万级十万级
消息投递实时性毫秒级毫秒级毫秒级(具体由consumer轮询时间决定)
持久化能力内存、文件内存、文件、数据库磁盘文件磁盘文件
堆积能力支持数据堆积,但数据堆积反过来影响生产速率非常好,所有消息存储在同一个commit log中非常好,只要磁盘有容量,可以做到无限堆积消息,消息存储在log中,每个分区一个log文件
是否有序若想有序,只能一个client可以支持有序有序多client保证有序
事务不支持支持不支持,但可通过Low Level API保证仅消费一次
集群支持
负载均衡支持
管理界面较好(RabbitAdmin)一般命令行界面(RocketMQ-Console)官方只提供命令行版本,Yahoo开源自己Kafka管理界面Kafka-Manager
部署方式独立
Broker端过滤消息不支持支持(通过tag过滤,类似于子topic)不支持
消息查询不支持支持(根据MessageId查询,支持根据MessageKey查询)不支持
消息失败重试支持支持(offset存储在broker中)不支持失败重试(offset存储在consumer中,无法保证;0.8.2版本后支持将offset存储在Zookeeper中)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值