【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1)

这篇具有很好参考价值的文章主要介绍了【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式

正文

队列多有什么好处?

  • 单机可以创建更多Topic,因为每个Topic都是由一批队列组成

  • Consumer的集群规模和队列数成正比,队列越多,Consumer集群可以越大

消息投递实时性


  • Kafka使用短轮询方式,实时性取决于轮询间隔时间

  • RocketMQ使用长轮询,同Push方式实时性一致,消息的投递延时通常在几个毫秒。

消费失败重试


  • Kafka消费失败不支持重试

  • RocketMQ消费失败支持定时重试,每次重试间隔时间顺延

总结:例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压力过多,稍后在调用就会成功,如支付宝到银行扣款也是类似需求。

这里的重试需要可靠的重试,即失败重试的消息不因为Consumer宕机导致丢失。

更多面试题推荐:公众号Java精选,回复java面试,获取最新面试资料。

严格的消息顺序


  • Kafka支持消息顺序,但是一台Broker宕机后,就会产生消息乱序

  • RocketMQ支持严格的消息顺序,在顺序消息场景下,一台Broker宕机后,发送消息会失败,但是不会乱序

Mysql Binlog分发需要严格的消息顺序

定时消息


  • Kafka不支持定时消息

  • RocketMQ支持两类定时消息

  • 开源版本RocketMQ仅支持定时Level

  • 阿里云ONS支持定时Level,以及指定的毫秒级别的延时时间

分布式事务消息


  • Kafka不支持分布式事务消息

  • 阿里云ONS支持分布式定时消息,未来开源版本的RocketMQ也有计划支持分布式事务消息

消息查询


  • Kafka不支持消息查询

  • RocketMQ支持根据Message Id查询消息,也支持根据消息内容查询消息(发送消息时指定一个Message Key,任意字符串,例如指定为订单Id)

总结:消息查询对于定位消息丢失问题非常有帮助,例如某个订单处理失败,是消息没收到还是收到处理出错了。

消息回溯


  • Kafka理论上可以按照Offset来回溯消息

  • RocketMQ支持按照时间来回溯消息,精度毫秒,例如从一天之前的某时某分某秒开始重新消费消息

总结:典型业务场景如consumer做订单分析,但是由于程序逻辑或者依赖的系统发生故障等原因,导致今天消费的消息全部无效,需要重新从昨天零点开始消费,那么以时间为起点的消息重放功能对于业务非常有帮助。

消费并行度


Kafka的消费并行度依赖Topic配置的分区数,如分区数为10,那么最多10台机器来并行消费(每台机器只能开启一个线程),或者一台机器消费(10个线程并行消费)。即消费并行度和分区数一致。

RocketMQ消费并行度分两种情况

  • 顺序消费方式并行度同Kafka完全一致

  • 乱序方式并行度取决于Consumer的线程数,如Topic配置10个队列,10台机器消费,每台机器100个线程,那么并行度为1000。

消息轨迹


  • Kafka不支持消息轨迹

  • 阿里云ONS支持消息轨迹

开发语言友好性


  • Kafka采用Scala编写

  • RocketMQ采用Java语言编写

Broker端消息过滤


Kafka不支持Broker端的消息过滤

RocketMQ支持两种Broker端消息过滤方式

  • 根据Message Tag来过滤,相当于子topic概念

  • 向服务器上传一段Java代码,可以对消息做任意形式的过滤,甚至可以做Message Body的过滤拆分。

消息堆积能力


理论上Kafka要比RocketMQ的堆积能力更强,不过RocketMQ单机也可以支持亿级的消息堆积能力,我们认为这个堆积能力已经完全可以满足业务需求。

开源社区活跃度


  • Kafka社区更新较慢

  • RocketMQ的github社区有250个个人、公司用户登记了联系方式,QQ群超过1000人。

商业支持


总结:绘上一张Kakfa架构思维大纲脑图(xmind)

【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式

其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?

若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理

梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。

  • Kafka入门

  • 为什么选择Kafka

  • Kafka的安装、管理和配置

  • Kafka的集群

  • 第一个Kafka程序

  • Kafka的生产者

  • Kafka的消费者

  • 深入理解Kafka

  • 可靠的数据传递

  • Spring和Kafka的整合

  • SpringBoot和Kafka的整合

  • Kafka实战之削峰填谷

  • 数据管道和流式处理(了解即可)

【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式

【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1),2024年程序员学习,rocketmq,kafka,分布式

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
转存中…(img-hqGJoVGF-1713435566310)]

[外链图片转存中…(img-0JWSI47e-1713435566310)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-yMCnHwFV-1713435566311)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!文章来源地址https://www.toymoban.com/news/detail-859357.html

到了这里,关于【137期】面试官问:RocketMQ 与 Kafka 对比,谈谈两者的差异?(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 22 | Kafka和RocketMQ的消息复制实现的差异点在哪?

    之前在《05 | 如何确保消息不会丢失?》那节中讲过,消息队列在收发两端,主要是依靠业务代码,配合请求确认的机制,来保证消息不会丢失的。而在服务端,一般采用持久化和复制的方式来保证不丢消息。 把消息复制到多个节点上,不仅可以解决丢消息的问题,还可以保

    2024年02月20日
    浏览(36)
  • RocketMq和Kafka对比

    生产者: Kafka会把收到的消息都 写入到硬盘中,它绝对不会丢失数据 。为了优化写入速度Kafak采用了两个技术, 顺序写入和MMFile 。 顺序写入: 因为硬盘是机械结构,每次读写都会寻址-写入,其中寻址是一个“机械动作”,它是最耗时的。所以 硬盘最“讨厌”随机I/O,最喜

    2024年02月08日
    浏览(40)
  • kafka和rocketmq区别对比

    Kafka和RocketMQ是目前非常流行的分布式消息系统,它们都能够高效地处理海量的消息数据。在本文中,我们将对Kafka和RocketMQ进行技术比较,分析它们在各方面的优缺点,以便读者在选择消息系统时能够做出更加明智的决策。 一、架构设计 Kafka和RocketMQ都是基于发布/订阅模式的

    2024年02月12日
    浏览(42)
  • RocketMQ与Kafka架构深度对比

    在分布式系统中,消息中间件扮演着至关重要的角色,它们负责在系统组件之间传递消息,实现解耦、异步通信和流量削峰等功能。RocketMQ与Kafka作为两款流行的消息中间件,各自拥有独特的架构设计和功能特性。本文将深入对比分析RocketMQ与Kafka在架构设计、组件构成、数据

    2024年02月19日
    浏览(42)
  • 【技术选型】ActiveMQ、RocketMQ、RabbitMQ、Kafka对比

    MQ(Message Queue),即消息队列。早已成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的MQ,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

    2024年02月13日
    浏览(45)
  • RabbitMQ、Kafka、RocketMQ:特点和适用场景对比

    在现代分布式系统中,消息队列是一种常见的架构模式,用于实现异步通信和解耦应用组件。RabbitMQ、Kafka和RocketMQ是当前流行的开源消息队列系统,它们各自有着独特的特点和适用场景。本文将对这三种消息队列系统进行详细介绍,并对它们的特点和适用场景进行对比分析。

    2024年02月11日
    浏览(40)
  • Kafka、RabbitMQ、RocketMQ中间件的对比

    消息中间件现在有不少,网上很多文章都对其做过对比,在这我对其做进一步总结与整理。     RocketMQ 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,201

    2024年02月05日
    浏览(39)
  • RocketMQ与Kafka深度对比:特性与适用场景解析

    在分布式系统中,消息队列作为解耦、缓冲和异步通信的关键组件,其选择对于系统的性能和稳定性至关重要。RocketMQ和Kafka作为两款流行的开源消息中间件,各自拥有独特的设计理念和功能特性。本文将详细对比RocketMQ与Kafka在数据可靠性、实时性、队列数与性能、消息顺序

    2024年02月21日
    浏览(33)
  • MQ对比选型:RocketMQ、Kafka、RabbitMQ、ActiveMQ、ZeroMQ

    本文将从多个角度全方位对比目前比较常用的几个MQ: RocketMQ Kafka RabbitMQ ActiveMQ ZeroMQ下文单独说明。 特性 RocketMQ Kafka RabbitMQ ActiveMQ 单机吞吐量 10 万级,支撑高吞吐 10 万级以上,甚至有文献称,可以达到单机百万级TPS。 万级,同ActiveMQ 万级,相对其他MQ较低。 topic 数量对吞

    2024年04月27日
    浏览(42)
  • MQ公共特性介绍 (ActiveMQ, RabbitMQ, RocketMQ, Kafka对比)

    本文主要介绍所有MQ框架都具备的公共特点,同时对比了一些目前比较主流MQ框架的优缺点,给大家做技术选型作参考。 MQ,MessageQueue,消息中间件 从世界上第一个MQ的诞生历程来看,它最初是为了解决通信的问题。 消息队列,又叫做消息中间件。是指用高效可靠的消息传递

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包