业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个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进行支持。

原文:http://wbj0110.iteye.com/blog/1974988

收集的rabbitmq资料如下:

http://jzhihui.iteye.com/category/195005

http://lynnkong.iteye.com/blog/1699684

http://blog.csdn.net/anzhsoft/article/details/19607841

http://ybbct.iteye.com/blog/1562326

转载于:https://www.cnblogs.com/davidwang456/p/4076097.html

RabbitMQ和kafka从几个角度简单的对比--转相关推荐

  1. RabbitMQ和Kafka到底怎么选?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:haolujun cnblogs.com/haolujun/ ...

  2. RabbitMQ 还是 Kafka?哪个才是架构利器

    作为一个有丰富经验的微服务系统架构师,经常有人问我,"应该选择RabbitMQ还是Kafka?".基于某些原因, 许多开发者会把这两种技术当做等价的来看待.的确,在一些案例场景下选 ...

  3. RabbitMQ 和 Kafka 到底怎么选?

    前言 开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措.对于RabbitMQ和Kafka,到底应该选哪个? Rabbi ...

  4. RabbitMQ和Kafka

    转自通九大神的博客 起因 最近公司RabbitMQ的集群出了点问题,然后有些亲就说RabbitMQ慢且不好用,是一个瓶颈,不如换成Kafka.而我本人,使用RabbitMQ有一点久了,认为这个事情应当 ...

  5. RabbitMQ和Kafka的区别

    前言 开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措.对于RabbitMQ和Kafka,到底应该选哪个? Rabbi ...

  6. 消息队列:RabbitMQ和Kafka的比较

    作为一个有丰富经验的微服务系统架构师,经常有人问我,"应该选择RabbitMQ还是Kafka?".基于某些原因, 许多开发者会把这两种技术当做等价的来看待. 的确,在一些案例场景下 ...

  7. 转:Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比

    转自:  https://blog.csdn.net/yunfeng482/article/details/72856762 前言 在分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步 ...

  8. RabbitMQ和Kafka选型用哪个

    作为一个有丰富经验的微服务系统架构师,经常有人问我,"应该选择RabbitMQ还是Kafka?" 基于某些原因, 许多开发者会把这两种技术当做等价的来看待.的确,在一些案例场景下选 ...

  9. 消息队列 ActiveMQ 、RocketMQ 、RabbitMQ 和 Kafka 如何选择?

    消息队列(MQ) 在百度百科中,消息队列(MQ)是这么解释的:"消息队列"是在消息的传输过程中保存消息的容器(可存可取). 它是分布式系统中重要的组件,使用消息队列主要是为了通过异 ...

最新文章

  1. hdu 统计难题(map)
  2. jvm性能调优实战 - 30使用jmap和jhat摸清线上系统的对象分布
  3. Android开发之Retrofit小试牛刀
  4. hibernate连接mysql配置文件 分享
  5. CSDN论坛上的一道算法题
  6. es6 Generator.prototype.return()方法
  7. sql server 快照_在SQL Server合并复制中应用快照时出现外键问题
  8. 类特征注意机制融合Deeplabv3+语义分割
  9. Redis系列之key操作命令与Redis中的事务详解(六)
  10. Springboot @Validated和@Valid
  11. av_malloc 与 av_free 的函数原型
  12. 计算机专业的八字,生辰八字五行计算器
  13. Arcgis4js实现链家找房的效果
  14. PIPI OJ 1203: PIPI发工资(拓扑排序)
  15. APS的定义是什么?高级计划与排程APS有哪些痛点?
  16. UVA 1600 Patrol Robot 巡逻机器人(BFS)
  17. 转发和重定向的区别(forward和redirect的区别)
  18. 内网BT首选:BitComet使用技巧点滴
  19. 简述什么是 Cloud Native 1
  20. Java-java中冒号(:)的用法

热门文章

  1. 易语言开发c s,Grid++Report报表工具C/S实战项目演练
  2. oracle function详解,Oracle 函数 Function 解析
  3. 之江汇空间如何加音乐背景_从脚本到成品,教你如何快速制作出创意又浪漫的婚礼视频...
  4. go int 最大值_Dig101 - Go之灵活的slice
  5. matlab确定污染源位置,确定污染源的位置
  6. 光滑粒子流体动力学_基于SPH(光滑粒子流体动力学)算法的流体仿真
  7. mysql 二维表 查询_二维报表数据表设计
  8. 道路检测 | SNE-RoadSeg论文阅读
  9. Linux 中的动态链接库和静态链接库是干什么的?
  10. 将tensor张量转换成图片格式并保存