1)TPS(每秒事务处理量(TransactionPerSecond)比较:

Kafka最高,RabbitMq 次之, ActiveMq 最差。

2)吞吐量对比:
kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。
rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。

3)在架构模型方面:
RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;有消息的确认机制。

kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据;无消息确认机制。

4)在可用性方面,
rabbitMQ支持miror的queue,主queue失效,miror queue接管。
kafka的broker支持主备模式。

activeMq也支持主备模式。

5)在集群负载均衡方面,
kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应topic的broker信息,可以随机或者轮询发送到broker上;并且producer可以基于语义指定分片,消息发送到broker的某分片上。

rabbitMQ的负载均衡需要单独的loadbalancer进行支持。

1.TPS比较

ZeroMq 最好,RabbitMq次之, ActiveMq最差

显示的是发送和接受的每秒钟的消息数。整个过程共产生1百万条1K的消息。测试的执行是在一个Windows Vista上进行的。

2、持久化消息比较

      zeroMq不支持,activeMq和rabbitMq都支持。持久化消息主要是指:MQ down或者MQ所在的服务器down了,消息不会丢失的机制。

3、技术点:可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统、社区

RabbitMq最好,ActiveMq次之,ZeroMq最差。当然ZeroMq也可以做到,不过自己必须手动写代码实现,代码量不小。尤其是可靠性中的:持久性、投递确认、发布者证实和高可用性。

所以在可靠性和可用性上,RabbitMQ是首选,虽然ActiveMQ也具备,但是它性能不及RabbitMQ。

 4、高并发

从实现语言来看,RabbitMQ最高,原因是它的实现语言是天生具备高并发高可用的erlang语言。

综合对比:
ActiveMQ: 历史悠久的开源项目,已经在很多产品中得到应用,实现了JMS1.1规范,可以和spring-jms轻松融合,实现了多种协议,不够轻巧(源代码比RocketMQ多),支持持久化到数据库,对队列数较多的情况支持不好。
RabbitMq:
它比kafka成熟,支持AMQP事务处理,在可靠性上,RabbitMq超过kafka,在性能方面超过ActiveMQ。
Kafka:
Kafka设计的初衷就是处理日志的,不支持AMQP事务处理,可以看做是一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性
Kafka的性能(吞吐量、tps)比RabbitMq要强,如果用来做大数据量的快速处理是比RabbitMq有优势的。

下面是网上引用的详细对比:
原文图片:http://blog.csdn.net/oMaverick1/article/details/51331004

PS:图片可能有点小,可以右键另存到桌面保存再查看

参考自https://blog.csdn.net/linsongbin1/article/details/47781187

https://blog.csdn.net/vtopqx/article/details/76382934

RabbitMq、ActiveMq、ZeroMq、kafka比较相关推荐

  1. 各个MQ消息队列介绍以及区别比较(RabbitMq ActiveMQ、ZeroMQ、Kafka)

    首先,MQ其实就是消息队列,队列我们可以理解为管道,以管道的方式做消息传递. 在本篇博客中,我们先来简单学习一下几种MQ,之后对他们进行对比. ActiveMQ.RabbitMQ.kafka.Rock ...

  2. Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka

    一.消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构.目前使用较多的消息队列有ActiveMQ,Rabbit ...

  3. 消息队列技术介绍 : ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ

    一. 消息队列概述 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合.异步消息.流量削锋等问 ...

  4. 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ

    一.消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构.目前使用较多的消息队列有ActiveMQ,Rabbit ...

  5. 消息中间件(RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ等)的定义、组成、特点、优缺点、应用场景面试题

    大家都参与过网上电商平台的秒杀活动吧,一般的秒杀活动辄几百万的参与人数,而"双十一"的参与人数更是已"亿"为计量单位.那么这些电商平台的系统架构是怎样的,它们是 ...

  6. 息中间件kafka与activeMQ、rabbitMQ、zeroMQ、rocketMQ的比较

    几种MQ产品说明: ZeroMQ :  扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码 RabbitMQ :结合erla ...

  7. 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记

    最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了.额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ(ActiveMQ/RabbitMQ/Rocke ...

  8. 惊了 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记

    最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了. 附面试思维导图: 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ( ActiveMQ/Rab ...

  9. RabbitMQ 七战 Kafka,差异立现!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 译者丨王欢,Golang后端工程师,DockOne社区译者 ...

  10. 选型必看:RabbitMQ 七战 Kafka,差异立现

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作为一个有丰富经验的微服务系统架构师,经常有人问我,"应 ...

最新文章

  1. linux显卡驱动mxm,linux下我的FX5200显卡驱动安装
  2. Flex4之与后台服务器通信方式:URLRequest+URLLoader【JAVA方式】
  3. PHP 数组遍历 foreach 语法结构
  4. [LeetCode_5] Longest Palindromic Substring
  5. java监听网络连接_Android RxJava 之网络链接监听示范
  6. Myeclipse学习总结(16)——MyEclipse CI 2018.8.0首次更新,全新来袭!(内附破解激活文件,亲测破解100%)
  7. koa 接口返回数据_node和koa实现数据mock接口
  8. 一台电脑,内外网同时使用
  9. Git 提交错了不用慌,这三招帮你修改记录
  10. linux删除文件未释放空间问题处理
  11. 使IE6支持png透明图片
  12. 高等数学张宇18讲 第十二讲 常微分方程
  13. 用于图像识别的编程语言,你知道几个?
  14. 邮局用计算机对信件进行自动分拣,计算机组成结构习题集
  15. 京东运营体系组织架构曝光,自建物流秘密在这里
  16. 外贸单证管理系统如何解决企业制单问题
  17. 零售的哲学前三章读后感
  18. 电缆故障测试仪的基本原理与组成——TFN DG15M电缆故障测试仪
  19. 是面试官放水,还是公司太缺人?这都能过,字节跳动原来这么容易进...
  20. 【JavaSE】abstract 抽象类 快到碗里来 (◕ᴗ◕✿)

热门文章

  1. php 导出excel 2007,使用PHPExcel导出Excel表
  2. C语言的printf一些骚操作
  3. kalman filter卡尔曼滤波器- 数学推导和原理理解-----网上讲的比较好的kalman filter和整理、将预测值和观测值融和...
  4. SpringCloud系列十三:Feign对继承、压缩、日志的支持以及构造多参数请求
  5. SQL学习--Select(一)TOP、派生表、连接、谓词
  6. 桐花万里python路-基础篇-05-字符串及浮点数
  7. 如何做研究-精辟分析
  8. 一步一步SharePoint 2007之十五:实现Form认证(5)——更改认证的Provider
  9. Scala基础之变量和数据类型
  10. (100)Vivado TCL命令概述