RabbitMQ和kafka从几个角度简单的对比

原创 2013年04月04日 10:17:29

业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比,

在应用场景方面,

RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。

kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。

1)在架构模型方面,

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数据;无消息确认机制。

2)在吞吐量,

kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。

rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。

3)在可用性方面,

rabbitMQ支持miror的queue,主queue失效,miror queue接管。

kafka的broker支持主备模式。

4)在集群负载均衡方面,

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

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

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和优势

引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。原...
  • yunfeng482
  • yunfeng482
  • 2017年06月04日 01:59
  • 5011

rabbitmq和kafka

 起因 最近公司RabbitMQ的集群出了点问题,然后有些亲就说RabbitMQ慢且不好用,是一个瓶颈,不如换成Kafka。而我本人,使用RabbitMQ有一点久了,认为这个事情应当辩证的去看...
  • u010233323
  • u010233323
  • 2016年08月03日 14:06
  • 2740

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

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。 第一...
  • linsongbin1
  • linsongbin1
  • 2015年08月19日 15:18
  • 150208

消息队列RabbitMQ和Kafka

RabbitMQ和Kafka转自通九大神的博客起因最近公司RabbitMQ的集群出了点问题,然后有些亲就说RabbitMQ慢且不好用,是一个瓶颈,不如换成Kafka。而我本人,使用RabbitMQ有一...
  • u011239989
  • u011239989
  • 2016年08月18日 09:59
  • 2070

ActiveMQ RabbitMQ KafKa对比

前言:     ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还 是可以...
  • vtopqx
  • vtopqx
  • 2017年07月30日 14:57
  • 3097

消息队列选型[首选Kafka](备选:RabbitMQ/NSQ/RocketMQ/disque/Kafka)

消息队列选型 Sep 27, 2015 什么是消息队列 顾名思义,消息队列就是用存放消息的队列结构,简称MQ。那什么是消息呢?广义上来说,所有的网络通信都可以看做是消息的传递。在通信的过程中,添...
  • scut1135
  • scut1135
  • 2016年01月31日 09:59
  • 14779

RabbitMq与Kafka集群设计比较

RabbitMq与Kafka集群设计比较
  • caicongyang
  • caicongyang
  • 2016年12月21日 21:07
  • 1065

消息队列探秘-Kafka、RabbitMQ对比

适应场景 feature scenario Kafka RabbitMQ 备注 PUB-SUB 发布订阅模型 √ √ 推拉消费 Consumer消费消...
  • beyond59241
  • beyond59241
  • 2017年06月25日 17:28
  • 488

RabbitMQ与KafKa区别

在应用场景方面, RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。 kafka是Linkedin于2010年12月份开源...
  • KobeSilent
  • KobeSilent
  • 2016年09月30日 11:37
  • 4026

kafka原理简介并且与RabbitMQ的选择

kafka原理简介并且与RabbitMQ的选择 kafka原理简介,rabbitMQ介绍,大致说一下区别  Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水...
  • qq_33792843
  • qq_33792843
  • 2017年07月22日 12:38
  • 388
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RabbitMQ和kafka从几个角度简单的对比
举报原因:
原因补充:

(最多只允许输入30个字)