美团面试问 Kafka 源码,我笑了!

GitHubDaily 2020-09-17 11:35

Kafka 因其优越的特性广泛用于数据传输、消息中间件的设计、开发和维护等方面,也得到越来越多大厂(阿里、美团、百度、快手等)的青睐,很多 IT 界前辈更是在技术层面不断深挖。

最近有位后端三年的朋友在准备美团的面试,特意来咨询 Kafka 的面试题,怕自己不能 cover 住技术面。这里列出了一些大厂面试官高频的问题

为什么要用 Kafka 集群?kafka 如何不消费重复数据?

Offeset 极限是多少?过了极限又是多少?

如何实现 exactly once?

不用 zk,怎么管理集群元数据信息?

Kafka Producer 如何优化打入速度?解释如何调整 Kafka 以获得最佳性能。


如果各位答不上来,那就得好好看下 Kafka 的源码了。这里推荐一份 Kafka 进阶精品视频——Kafka 生产者源码解析(本号粉丝限时5天免费开放)能让你系统理解 Kafka 底层原理,满足不同阶段的开发工作需


  • 长期在小公司打拼,受限于业务,技术栈老旧,没有机会接触新技术;
  • 想突破职业瓶颈,进入BAT等一线大厂;
  • 想摆脱码农标签,转型技术管理或架构师,但技术薄弱难以服人。
  • 别人跳槽薪资翻倍,自己却面试无果或涨幅不高。


视频将通过实战项目贯穿技术架构演进始末,用通俗易懂的方式从 Kafka 底层源码设计,深度揭秘 Kafka 各种特性,用 10h 时间帮你彻底解决 Kafka 的各种问题。



Kafka 生产者源码解析


0

1

10 小时”能收获

  • 快速上手 Kafka 生产者底层实现原理,轻松掌握 Kafka 各种新特性;

  • 领略 kafka 源码设计之美,系统掌握 Kafka 源码实现逻辑,底层机制;

  • 扛起 Kafka 架构建设大旗,轻松应对工作、面试中各种 Kafka 难题。


0

2

“实战·系统”干货

1、源码阅读准备

  • 基础知识

  • 源码环境

  • 源码剖析思路介绍

  • 从 demo 入手


2、Kafka 生产者实现流程

  • Producer 核心流程介绍

  • Producer 初始化

  • Producer 端元数据管理

  • Producer 源码核心流程初探

  • Producer 加载元数据


3、Kafka 生产者底层原理实现机制

  • 分区选择

  • RecordAccumulator 封装消息流程初探

  • CopyOnWriteMap 数据结构使用

  • 把数据写入对应批次(分段加锁)

  • 内存池设计

  • Sender 线程运行流程初探

  • 一个 batchs 什么条件下可以发送?

  • 筛选可以发送消息的 broker


4、Kafka 生产者底层实现原理

  • Kafka 网络设计

  • 如果网络没有建立会发送消息吗?

  • Producer 终于与 Broker 建立连接了!

  • 生产者终于可以发送请求了!


5、Kafka 生产者源码消息处理

  • Producer是如何处理粘包、拆包问题的?

  • 如何处理暂存状态的响应消息?

  • 如何处理响应消息?

  • 消息发送完以后内存如何处理?

  • 消息有异常是如何处理的?

  • 如何处理超时的批次?

  • 如何处理长时间没收到响应的消息?


6、Kafka 源码总结

  • 生产者源码精华总结


本资料是 开课吧 经过深度调研大厂高薪程序员技能后,专为想进阶学习、升职涨薪或进大厂的开发者们最新打磨而成,价值 699 元,现对本公众号粉丝 免费 开放 5天仅 前200名 粉丝免费,抓紧时间扫码领取~


600 分钟干货,0元仅限5天
啃透 Kafka 源码,扫清晋升加薪障碍
仅200个免费名额


各大互联网公司都要求开发者具备源码阅读经验,很看中候选人源码二次开发能力,而《Kafka 生产者源码解析》能完美解决这些工作求职困扰。尤其是近期要冲击高薪的同学,千万不要错过!

最后,对于想要系统提升开发能力的 Java、PHP、Python、嵌入式等1-5年编程经验的人,开课吧还邀请廖雪峰老师团队打造了vip课程《大数据高级开发实战班》,此课程中也有很多 Kafka 有关 Broker、Consumer 的源码解析,感兴趣的小伙伴可扫码咨询~
推荐阅读