其实,作为消息队列来说,企业中选择mq的还是多数,因为像Rabbit,Rocket等mq中间件都属于很成熟的产品,性能一般但可靠性较强,而kafka原本设计的初衷是日志统计分析,现在基于大数据的背景下也可以做运营数据的分析统计,而redis的主要场景是内存数据库,作为消息队列来说可靠性太差,而且速度太依赖网络IO,在服务器本机上的速度较快,且容易出现数据堆积的问题,在比较轻量的场合下能够适用。

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进行支持。

mq和kafka的不同之处相关推荐

  1. kafka 同步提交 异步_极限MQ (5) Kafka 消费者

    要想知道如何从 Kafka 读取消息,需要先了解消费者和消费者群组的概念. 假设我们有一个应用程序需要从 Kafka 主题读取消息井验证这些消息,然后再把它们保存起来.应用程序需要创建一个消费者对象, ...

  2. 后端技术:消息队列MQ/JMS/Kafka相关知识介绍

    ?今天给大家分享消息队列MQ/JMS/Kafka相关知识介绍 1.消息队列介绍 首先举个收快递的栗子,传统的收快递,快递小哥把我们的快递送到我们的手里.他需要什么条件嗯? 快递小哥有时间送, 我们有时 ...

  3. 【MQ】Kafka笔记

    笔记来源:尚硅谷视频笔记2.0版+2.1版 黑马视频:Kafka深入探秘者来了 kafka笔记地址:https://blog.csdn.net/hancoder/article/details/107 ...

  4. 梳理消息队列 MQ/JMS/Kafka

    是不是平常听到说消息队列啊,JMS啊,MQ啊 .kafka啊巴啦啦的一堆术语,听不懂?关系混乱?今天就让我们来一起来看看他们都是什么吧. 1消息队列介绍 首先举个收快递的栗子,传统的收快递,快递小哥把 ...

  5. 消息队列MQ/JMS/Kafka,你都了解多少?

    今日推荐isEmpty 和 isBlank 的用法区别,你都知道吗?SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)国内大神成功给手机装上了 Win11,代码已开源!Fluent Myb ...

  6. 面试官:消息队列 MQ/ JMS/ Kafka 有什么区别?

    更多架构干货请关注公众号"架构之路".是不是平常听到说消息队列啊,JMS啊,MQ啊 .kafka啊巴啦啦的一堆术语,听不懂?关系混乱?今天就让我们来一起来看看他们都是什么吧. 1消 ...

  7. 消息队列MQ/JMS/Kafka,你都了解吗?

    点击关注公众号,回复"1024"获取2TB学习资源! 是不是平常听到说消息队列啊,JMS啊,MQ啊 .kafka啊巴啦啦的一堆术语,听不懂?关系混乱?今天就让我们来一起来看看他们都 ...

  8. 消息队列MQ 之 Kafka

    目录 前言 一.消息队列 MQ 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 二.Kafka 概述 Kafka 简介 Kafka 的特性 三 实验 前言 一.消息队列 MQ MQ ...

  9. 【MQ】kafka(一)——什么是kafka?在系统中干什么用?

    一.前言 在这个系列博客中,小编将向大家介绍一下一款吞吐超级大的消息中间件--kafka. 说到消息中间件MQ,小编也在前面的博客中介绍过 rocketMq,activeMq等等. 至于为什么叫kaf ...

最新文章

  1. php的基本语法和数据类型
  2. CSS display 属性
  3. Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#Object‘的解决方法...
  4. 定位--position属性
  5. 我同事吃的辅酶Q10到底有没有效果?
  6. 体质测试数据统计软件,[体质测试数据excel自动统计表]体质测试数据Excel自动统计模板的研制...
  7. 赛普拉斯 12864_如何使用赛普拉斯自动化辅助功能测试
  8. Mac文本操作实用技巧,快速提升你的工作效率!
  9. JavaScript遇到浏览器不兼容与解决方案
  10. 房东收电费1.5犯法吗_2021年结婚要彩礼犯法吗 2021年不能收彩礼是真的吗
  11. sqlserver Split 开放写法有兴趣的学习一下
  12. 挑战程序设计竞赛:Conscription
  13. 防火墙端口大全(转)
  14. prometheus Metric类型
  15. 操作系统中的几种I/O控制方式
  16. 《金狐系统维护盘》五周年纪念版【简洁易用,强大实用】
  17. 微信公众号-模板消息管理
  18. Python趣用—配平化学方程式
  19. mysql 中的脏读与幻读_mysql中脏读、不可重复读、幻读以及四种隔离级别的浅显理解...
  20. C语言中字符数组的初始化与赋值

热门文章

  1. 移动端调用高德地图app和百度app
  2. 桌面中计算机作用,云桌面技术在计算机机房管理中的作用研究
  3. 获取客户端IP地址定位城市信息
  4. ova后缀的文件是干什么用的
  5. gitlab进程杀不死解决
  6. 4月N2知识冲刺(1)
  7. 石河子大学计算机专业排名2019,2019石河子大学怎么样
  8. Python机器学习日记4:监督学习算法的一些样本数据集(持续更新)
  9. onBlur和onfocus事件
  10. 电子商务经营模式一览