`
frank1998819
  • 浏览: 751887 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

 
阅读更多

原作者:http://blog.csdn.net/linsongbin1/article/details/47781187

 

 

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。

第一部分:RabbitMQ,ActiveMq,ZeroMq比较

1、 TPS比较 一

ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这篇文章。

http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/

测试环境:

     Model: Dell Studio 1749

     CPU: Intel Core i3 @ 2.40 GHz

     RAM: 4 Gb

     OS: Windows 7 64 bits

其中包括持久化消息和瞬时消息的测试。注意这篇文章里面提到的MQ,都是采用默认配置的,并无调优。

更多的统计图请参看我提供的文章url。

 

 

2TPS比较

ZeroMq 最好,RabbitMq次之, ActiveMq最差。这个结论来自于一下这篇文章。http://www.cnblogs.com/amityat/archive/2011/08/31/2160293.html 

 

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


3、持久化消息比较

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


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

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

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

 

 5、高并发

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


 

总结:

按照目前网络上的资料,RabbitMQ、activeM、zeroMQ三者中,综合来看,RabbitMQ是首选。下面提供一篇文章,是淘宝使用RabbitMQ的心得,可以参看一些业务场景。

http://www.docin.com/p-462677246.html

 

第二部分:kafkaRabbitMQ的比较

 

关于这两种MQ的比较,网上的资料并不多,最权威的的是kafka的提交者写一篇文章。http://www.quora.com/What-are-the-differences-between-Apache-Kafka-and-RabbitMQ

里面提到的要点:

1、  RabbitMq比kafka成熟,在可用性上,稳定性上,可靠性上,RabbitMq超过kafka

2、  Kafka设计的初衷就是处理日志的,可以看做是一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性

3、  Kafka的性能(吞吐量、tps)比RabbitMq要强,这篇文章的作者认为,两者在这方面没有可比性。

这里在附上两篇文章,也是关于kafka和RabbitMq之间的比较的:

1、http://www.mrhaoting.com/?p=139

2、http://www.liaoqiqi.com/post/227

 

总结:

两者对比后,我仍然是选择RabbitMq,性能其实是很强劲的,同时具备了一个成熟的MQ应该具有的特性,我们无需重新发明轮子。

 

好资料推荐:

            1、最全最给力的kafka博客:http://blog.csdn.net/lizhitao/article/category/2194509

           2、淘宝对rabbitmq的使用:http://www.docin.com/p-462677246.html

分享到:
评论

相关推荐

    消息中间件kafka与activemq、rabbitmq、zeromq、rocketmq的比较

    #### Kafka与Activemq、Rabbitmq、ZeroMq、Rocketmq的比较 在现代分布式系统中,消息中间件(Message Queue, MQ)扮演着至关重要的角色,它们用于在分布式组件之间传输消息,帮助解决网络延迟、组件故障等问题,...

    浅谈Java消息队列总结篇(ActiveMQ、RabbitMQ、ZeroMQ、Kafka)

    常用的消息队列有 ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ 等。 Java 消息队列的应用场景: 1. 异步处理:引入消息队列,将不是必须的业务逻辑异步处理,解决系统性能瓶颈问题。 2. 应用解耦:引入...

    消息中间件技术选型,包括ActiveMQ、Apollo、RabbitMQ、RocketMQ、Kafka、Redis、ZeroMQ

    消息中间件技术选型,ActiveMQ、Apollo、RabbitMQ、RocketMQ、Kafka、Redis、ZeroMQ多维护对比分析

    RabbitMq实例以及安装包

    按照目前网络上的资料,RabbitMQ 、activeM 、ZeroMQ 三者中,综合来看,RabbitMQ 是首选。 2.持久化消息比较 ZeroMq 不支持,ActiveMq 和RabbitMq 都支持。持久化消息主要是指我们机器在不可抗力因素等情况下挂掉...

    消息中间件之ActiveMQ视频课程

    当前使用较多的消息中间件有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等。本套视频以Apache的ActiveMQ作为切入点,分为基础/实战/面试上中下三大部分,带你从零基础入门到熟练掌握ActiveMQ,能够结合...

    MQ之ActiveMQ.mmap

    当前使用较多的消息中间件有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等, 本次以Apache的ActiveMQ作为切入点,分为基础/实战/面试上中下三大部分,将带着同学们 从零基础入门到熟练掌握ActiveMQ,能够...

    RabbitMQ 讲义.pdf

    目前市场上主流的消息队列产品包括ActiveMQ、ZeroMQ、RabbitMQ、RocketMQ和Kafka。其中,ActiveMQ基于JMS协议,而ZeroMQ是基于C语言开发,RabbitMQ基于AMQP协议并使用Erlang语言编写,RocketMQ是阿里巴巴基于JMS协议...

    rabbitmq学习资料

    RabbitMQ作为一个中间件,本质上是一个消息的代理,在这个领域还有ActiveMQ、RocketMQ、 ZeroMQ、Joram、Kafka等等。其中ActiveMQ是Apache公司开源的消息系统,使用Java语言开发,功能 较为完善,被大量开源项目所...

    MQ选型之RabbitMQ

    在这些方面,**RabbitMQ和Kafka表现最佳**,而ActiveMQ略逊一筹,ZeroMQ则相对较弱。 ##### 3.4 高并发能力 RabbitMQ之所以能在高并发场景下表现出色,很大程度上得益于其实现语言——**Erlang**。Erlang是一门...

    kafka的使用场景.docx

    虽然市场上有多种消息中间件,如ActiveMQ、RabbitMQ、ZeroMQ、MetaMQ、RocketMQ等,但Kafka以其高吞吐量、低延迟和可持久化特性,在大数据处理和实时流应用中脱颖而出。 四、Kafka在电商系统中的应用 电商系统中,...

    kafka集群方案选型

    在当前的消息中间件产品市场中,存在多种选择,包括ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等。每种产品都有其优缺点,本文将对这些产品进行比较,阐述Kafka集群方案选型的必要性和可行性。 一、消息中间件...

    rabbitmq教程

    目前市场上较为流行的消息队列框架包括RabbitMQ、ActiveMQ、ZeroMQ、Kafka以及阿里巴巴开源的RocketMQ等。本教程将重点介绍RabbitMQ及其使用方法。 #### RabbitMQ简介 RabbitMQ是一个开源的消息代理软件,基于...

    rabbitMQ文档

    ### rabbitMQ文档 #### MQ(消息队列)概述 **MQ**,即**Message Queue**(消息队列),是一种在分布式系统中实现进程间通信的技术。消息队列本质上是一个先进先出(FIFO)的数据结构,用于存储消息直到被消费。...

    十种MQ的技术选型详细对比.docx

    在本文档中,我们将对以下十种消息队列(Message Queue,简称MQ)系统进行详细的技术选型对比:ActiveMQ、RabbitMQ、RocketMQ、Joram、HornetQ、OpenMQ、MuleMQ、SonicMQ、ZeroMQ以及Kafka。这些系统在企业级应用中...

    大数据组件Kafka讲解.pdf

    同时,Kafka相比于RabbitMQ、ZeroMQ、ActiveMQ和Redis等其他消息队列(MQ),它在处理大规模数据流方面有其独特的优势。 总的来说,Kafka的核心特点在于它能够提供非常高的吞吐量,消息持久化,便于水平扩展,以及...

    消息队列1

    本文将围绕标题"消息队列1"和描述中的内容,探讨几个主流的消息队列系统,包括Kafka、RabbitMQ、ZeroMQ和RocketMQ,以及它们在可用性、开发语言、协议支持、消息存储、事务处理和负载均衡等方面的特点。 首先,...

    消息队列RabbitMQ介绍

    在比较RabbitMQ与其他主流消息队列产品时,如ActiveMQ、ZeroMQ和Kafka等,需要考虑消息协议、产品特性、使用场景等多个方面。RabbitMQ基于高级消息队列协议(AMQP),而其他产品可能基于不同的协议,如ZeroMQ基于TCP...

Global site tag (gtag.js) - Google Analytics