kafka面经汇总

感谢那些分享面经的同学,大家结合自己的业务+八股的方式去回答感觉会更好。

tips:如果大家对自己的项目业务还不是很熟悉,可以用Trae或者其他的ai IDEA帮你分析整个项目的业务

一、核心原理与基础概念

  1. 请简述 Kafka 的核心原理(架构、数据流转过程)。
  2. 讲一下你对消息队列的理解(核心价值、适用场景)。
  3. Kafka 的核心特性有哪些?
  4. Kafka 是推(Push)模式还是拉(Pull)模式?支持批量处理还是单条处理?
  5. 什么是零拷贝?Kafka 的零拷贝是怎么实现的(底层调用的函数 / 机制)?
  6. 有了解过 Kafka 分区(Partition)的概念吗?其核心作用是什么?
  7. 正常情况下,一个 Topic 下是一个分区还是多个分区?多个分区的好处是什么?
  8. Kafka 的 Leader 和 Follower 分别是干什么用的?
  9. 请介绍 Kafka 的 ISR 机制(In-Sync Replicas,同步副本集)。
  10. Kafka 用什么维护消费偏移量(Offset)?最新版本还依赖 ZooKeeper 吗?原因是什么?
  11. 除了异步通信和削峰填谷,使用 MQ 还有哪些考量?
  12. 什么时候会用到 Kafka?其核心应用场景是什么?

二、高可用与可靠性保障

  1. Kafka 如何保证高可用性?(结合集群、ISR、Leader 选举等)
  2. Kafka 如何保证消息不丢失?可能丢失消息的场景有哪些?如何解决?
  3. Kafka 如何保证消息的顺序性?(整体顺序、分区内顺序)
  4. Kafka 如何防止脑裂问题?
  5. Kafka 支持事务吗?其事务机制是怎样的?
  6. 什么是消息的重复消费?Kafka 中如何避免重复消费?
  7. Kafka 的 ACK 有哪几种模式?各自的作用是什么?
  8. 一个 Kafka Topic 被 5 个消费组同时消费(每个 Group 写不同系统),中间某个 Group 偶发失败,但不能重放整条消息(其他组已成功),如何保证该组失败消息的精准重试?同时如何保证幂等性?

三、分区与 Topic 相关

  1. Kafka 的分区策略有哪些?默认分区、粘性分区、自定义分区分别是什么?
  2. Kafka 如何将消息发送到指定的 Partition 中?(底层逻辑、路由规则)

四、生产者与消费者相关

  1. Kafka 消费者的消费策略有哪些?(如 Range、Round-Robin 等)
  2. 什么是 Kafka 的 Rebalance 机制?
  3. 哪些情况下会触发 Kafka 的 Rebalance?
  4. Rebalance 持续时间较长会有什么影响?如何解决?
  5. 如何降低 Consumer 重启次数?
  6. Kafka 出现消息消费 Lag(消费延迟、消息堆积)时,如何排查问题?怎么处理?
  7. 除了限流和丢弃消息,还有哪些方式可以提高消费者的吞吐量,解决消息积压?
  8. 单分区单消费者实例场景下,如何提高 Kafka 的吞吐量?
  9. Kafka、RabbitMQ 如果要监听多个 Topic,需要写多个监听器吗?

五、选举机制

  1. Kafka 的 Leader 选举策略是什么?
  2. Kafka 的选举机制具体是怎么实现的?(结合 ISR、Controller 等)

六、性能优化

  1. 为什么 Kafka 速度快?(从存储、IO、网络等角度分析)

七、部署与运维

  1. 如果 Kafka 宕机,如何处理?(分 Broker 宕机、Consumer 宕机等场景)

八、特殊功能实现

  1. Kafka 的延迟消息队列是如何实现的?
  2. 如何用 Kafka 解耦文件上传与处理流程?

九、MQ 对比与选型

  1. Kafka 和 RabbitMQ 有什么区别?
  2. Kafka、RabbitMQ、RocketMQ 三者的区别与适用场景?
  3. 为什么选择 Kafka 实现服务通信?选型时为什么不选 RabbitMQ 或 RocketMQ?
  4. 为什么使用 Kafka 做异步通信?有考虑过其他 MQ 吗?

十、项目实战场景

  1. Kafka 在工作场景中主要用于解决什么问题?
  2. Kafka 在项目中的具体使用场景有哪些?(举例说明)
#牛客在线求职答疑中心##机械制造笔面经##业务面应该做哪些准备##大厂面试问八股多还是项目多?##面试问题记录#
全部评论
技术大佬就出现了
1 回复 分享
发布于 01-24 19:55 江苏
mark
1 回复 分享
发布于 01-12 10:53 北京
mark
点赞 回复 分享
发布于 02-08 21:48 四川
mark
点赞 回复 分享
发布于 02-03 16:23 浙江
蹲面经
点赞 回复 分享
发布于 02-02 15:35 新疆
mark
点赞 回复 分享
发布于 02-01 11:57 湖北
蹲面经
点赞 回复 分享
发布于 01-31 16:47 陕西
感谢分享
点赞 回复 分享
发布于 01-28 19:01 陕西
问这么多,我都感觉到压力了
点赞 回复 分享
发布于 01-15 20:03 陕西
kafka问题挺全面的,建议补上答案参考
点赞 回复 分享
发布于 01-14 14:11 云南

相关推荐

自我介绍 SpringSpring 在 Bean 注入时会出现循环依赖,Spring 是怎么解决循环依赖的?Spring 的三级缓存是什么?哪些场景下 Spring 解决不了循环依赖?为什么构造器注入无法解决循环依赖?缓存 / Redis项目里缓存是怎么设计的?本地缓存和 Redis 缓存之间是怎么做数据同步的?如果有多台机器,本地缓存怎么保证一致性?延迟双删策略是怎么实现的?延迟双删会有什么问题?删除缓存时你是怎么做延迟删除的?如果延迟删除失败或者线程被中断怎么办?分布式锁Redis 分布式锁是怎么实现的?Redisson 分布式锁的实现原理是什么?什么是看门狗机制?看门狗机制为什么能避免死锁?项目设计(抢票系统)你项目里的库存扣减逻辑是怎么实现的?Redis 中库存的数据结构是怎么设计的?你提到 Redis 里用了三个 Hash 表,分别是做什么的?扣减库存的具体流程是什么?为什么要用 Lua 脚本?Lua 脚本在这里解决了什么问题?Redis 与数据库一致性Redis 预扣库存之后,Redis 和数据库之间是怎么同步的?如果 Redis 扣减成功,但数据库扣减失败怎么办?如果数据库扣减失败,库存如何恢复?KafkaKafka 在你的系统中是怎么使用的?Kafka 在下单流程中承担什么角色?Kafka 消息是怎么发送的?Kafka 如何保证消息发送的可靠性?Kafka 的 ACK 机制是什么?Kafka Broker 是如何保证消息可靠性的?什么是 Kafka 的副本机制?什么是 ISR 机制?Kafka 消费者是怎么消费消息的?消费者消费完消息之后如何提交 offset?offset 的作用是什么?订单流程Redis 预扣库存之后,什么时候生成订单号?Kafka 创建订单的流程是怎样的?前端是怎么知道订单是否创建成功的?前端轮询接口查询订单时用的查询条件是什么?如果一个用户在多个设备同时下单,如何保证唯一性?幂等锁是怎么设计的?Kafka 异步问题Kafka 生产者是否可以等待消费者消费完消息?如果 Kafka 消费时间很长会发生什么?如果 Kafka 消费延迟很久怎么办?如果 Kafka 消息发送失败怎么办?
点赞 评论 收藏
分享
03-25 21:50
已编辑
南京大学 Java
更新:中午面的,晚上约下一轮(下一轮应该是hr面了)。求问牛油们是直接拒offer还是当做一个备选项?(本人是后端选手😅)1. 简单自我介绍一下2. 你了解计算机网络吗?什么是TCP和UDP?3. TCP和UDP的内部实现有什么区别?TCP如何保证可靠性?4. 如果希望让UDP也具备一定的可靠性,你会考虑怎么去优化?5. 你了解HTTP协议吗?HTTP协议都有哪几个版本?分别底层基于什么协议实现?6. HTTP 1.0和1.1的区别?长连接是怎么实现的?7. 常见的长连接实现方式有哪些?8. 如果有1亿用户都建立长连接不断开,对后台压力巨大,如何优化?(既要快和稳定,又要扛住压力)9. 长连接会对后台造成压力,如何设计后台机制来管理用户状态?10. 你知道什么是进程和线程吗?11. 进程间通常有几种通信的方法?12. 你知道线程的死锁是什么意思?死锁产生的条件和如何避免?13. 什么是分布式死锁?如何避免分布式死锁的产生和恢复?14. 代码审查题:分析一段Java实现的DataCache代码(使用SharedPreference)存在的问题,包括代码实现bug和代码设计问题15. 算法题:最大子序和团队是QQ浏览器,比一面难一些,但因为我简历写的全是后端的东西,就没有拷打项目。有些八股问太深了没答出,算法题秒了,代码审查的bug找的不是很全,感觉要考虑高并发问题吧?
查看15道真题和解析
点赞 评论 收藏
分享
03-24 09:51
湖南大学
公司:9377游戏岗位:后端开发工程师方向:Java 后端 / 游戏后端1. 自我介绍答案思路• 学校/专业/毕业时间• 技术栈:Java、SpringBoot、MySQL、Redis、中间件等• 项目亮点:高并发、文件上传、分布式任务、性能优化• 求职意向:后端开发,长期稳定发展2. 是否有考研考公的打算?答案目前没有考研、考公计划,专注于就业,希望在企业里深耕技术,长期稳定发展,和公司一起成长。3. 怎么去选择服务器的?答案• 根据业务场景:CPU 密集型选高 CPU,I/O 密集型选高内存/高带宽• 根据并发量:QPS、连接数、带宽需求• 成本与性价比:云服务器按需扩容,优先ECS/容器• 游戏后端关注:低延迟、高可用、多区域部署4. 怎么进行冗余存储,还有别的办法吗?答案• 冗余存储:主从、副本、多副本机制• 方案:1)副本集:一主多从,故障自动切换2)分布式存储:MinIO、HDFS、OSS 多副本3)异地多活:跨机房容灾• 其他:RAID 磁盘阵列、冷热分离、备份策略。5. 断点续传怎么做?答案1. 前端分片:大文件切分成小块2. 每个分片带唯一标识:文件 hash + 分片索引3. 后端记录已上传分片,返回未上传列表4. 前端只传未完成分片5. 全部传完后端合并分片6. 怎么获取文件分片或大小?答案• 前端:通过 File 对象的 size 获取总大小,计算分片数量与偏移• 后端:通过请求头/参数拿到总分片数、当前分片、文件MD57. 上传文件用到哪些系统调用?请求头格式?答案• 系统调用:open、read、write、close• 请求头:Content-Type: multipart/form-data• 携带:Content-Length、Content-Range(断点续传)8. 怎么解决 OOM 问题?答案1. 排查:dump 内存,看 GC、大对象、内存泄漏2. 优化:◦ 避免无限创建线程/大集合◦ 池化:线程池、连接池、对象池◦ 及时释放资源,关闭流、连接3. JVM 参数:调整堆内存,合理设置 GC 策略9. 下载很大的 Excel 怎么办?答案• 流式写出:不一次性加载到内存,边生成边下载• 分页/分批次:按条数分批导出• 异步生成 + 下载:后台生成文件,返回下载链接10. ThreadPool 如何优化接口时间?答案• 同步改异步,并行执行多任务• 避免重复创建销毁线程,降低开销• 控制并发数,防止线程过多导致 CPU 飙高/阻塞• 适用于:批量处理、消息推送、日志上报等11. XXL-JOB 如何保证数据一致性?答案• 执行器幂等设计:重复执行不影响数据• 任务失败重试 + 告警• 调度中心分布式锁,避免多节点重复执行• 执行日志可追溯,支持手动处理失败任务12. MySQL 和 Redis 如何保证数据一致性?答案• 方案:先更 DB,再删缓存• 避免:先删缓存再更 DB 导致脏数据• 最终一致:◦ 延时双删◦ 分布式事务/消息队列保证最终一致• 缓存过期兜底13. 常用索引有哪些?答案• 主键索引、普通索引、唯一索引• 联合索引、覆盖索引• 全文索引(文本搜索)14. InnoDB 数据结构 & 存储格式?答案• 数据结构:B+ 树• 存储引擎格式:◦ 行格式:Dynamic/Compact◦ 表空间:系统表空间、独立表空间(ibd)
点赞 评论 收藏
分享
评论
19
143
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务