Kafka核心源码解读
从底层到实战,深度解析源码
胡夕
友信金服商业智能部总监,Apache Kafka Contributor
原价 ¥99
415 人已学习 · 共40讲 · 每周二 / 四 / 六更新
收藏

移动设备学习

App Store 下载

Android 下载

扫描二维码下载客户端

【胡夕直播专属福利】

早鸟 +专属口令「gogokafka」到手仅 ¥58
立省 ¥41,原价 ¥99,仅限今日

你将获得

  • 系统高效的源码阅读方法
  • 深入理解 Kafka 的底层原理
  • 快速定位线上问题并制定调优方案
  • 25 个典型案例分享 + 面试题讲解

老师介绍

胡夕,友信金服商业智能部总监,Apache Kafka 社区活跃的代码贡献者,著有《Apache Kafka 实战》一书,曾任职于 IBM、搜狗和新浪微博等公司,也是极客时间《Kafka 核心技术与实战》专栏的作者。胡夕对 Kafka 及其它开源流处理框架与技术有深刻理解,他精通 Kafka 原理,主导过多个十亿级 / 天的消息引擎业务系统的设计与搭建,具有丰富的线上环境定位和诊断调优经验,曾给多家大型公司提供企业级 Kafka 培训。

课程介绍

谈到源码分析,很多人会有这样的疑问:“Kafka 的基本功能我已经掌握了,还有读源码的必要吗?”

实际上,阅读源码不仅能够帮你更深刻地理解底层设计原理,提升你的系统架构能力和编码功力,还能让你知道 Kafka 使用中有哪些坑,提前避免。更为重要的,如果你把读源码的时间分摊到解决问题的时间成本上,你会发现,读源码反而是更节省时间的选择,因为你可以借助源码快速定位问题并制定调优方案。

除此之外,很多公司在招聘资深技术岗时,常常会要求应聘者“至少读过一种开源框架的源码”。这也就意味着,阅读源码正在从“加分项”向“必选项”转变。

读源码之初,我们的目标都是“从入门到精通”,但是,在实际阅读源码的过程中,很多人却遇到了很多棘手的问题,结果只能“从入门到放弃”。这些问题主要是:

  • 源码有这么多,该从哪里开始读?
  • 读源码太枯燥了,有没有什么科学有趣的方法呢?
  • ……

基于这些问题,我们邀请胡夕老师开设了《Kafka 核心源码解读》这个课程。鉴于服务器端源码是理解 Kafka 架构特别是系统运行原理的基础,老师精选出了最重要的组件代码,按照功能将其划分为 7 个模块,采用“丰富的流程图 + 代码注释”的方式进行细粒度讲解。

同时,这个课程还有大量的真实案例、社区的最新动态、经典面试题的系统解答,让你不仅能读懂源码,还能做到借助源码高效地解决真实问题。

常见问题

问:Kafka 服务器端源码由 Scala 语言编写而成,不会 Scala 语言也可以学习这个课程吗?

答:这部分源码并没有用到 Scala 多少高大上的语法特性。即使你不熟悉 Scala 语言也没关系。你不需要完整、系统地学习这门语言,只要能简单了解基本的函数式编程风格,以及它的几个关键特性,就足够了。如果你有 Java 语言基础,那就更好了,因为它们有很多特性非常相似。

当然了,为了不影响你理解课程内涉及的源码,“导读”会先给你介绍下 Scala 语言。课程里涉及 Scala 比较难的语言特性时,也会具体解释。所以,你完全不用担心语言的问题。

问:非 Kafka 使用者是否可以从这个课程中受益?

答:如果你是开源框架爱好者,你可以从这门课里学到很多优秀的设计理念,进一步提升你的系统架构能力。另外,很多公司在招聘高级技术人员时通常会要求应聘者“至少读过一种开源框架的源码”,如果你现在没有更好的选项,不妨学习下这门课,它会让你快速掌握一种源码。

课程模块设计

课程主体分为 7 个模块。

  • 日志模块:详细介绍消息是如何被定义和组织的,帮你掌握 Kafka 消息在底层被读写的方法代码是怎么实现的。

  • 请求处理模块:分析各类 Kafka 请求在网络层传输以及被处理的逻辑代码,尤其是 Reactor 模式在 Kafka 中的实现。

  • 副本管理模块:主要阐述分区副本对象的管理逻辑代码,包括副本的创建、状态流转、删除等操作,帮你搞懂副本在 Kafka 中的状态流转路径。

  • 延迟操作模块:重点讲解 Kafka 如何实现延迟操作,以及一个 O(N) 时间复杂度的时间轮算法,带你搞懂延迟操作底层的实现架构。

  • 消费者组管理模块:详细分析消费者组协调器的各类管理功能代码,比如创建、管理、删除等,GroupCoordinator 是 Kafka 中最核心的组件之一。

  • Controller 模块:结合一些实际案例,给你分享 Controller 组件管理 Kafka 集群元数据的代码和基于 ZooKeeper 的 Controller 选举。

  • 状态机模块:重点分析副本和分区的状态流转逻辑,以及 Kafka 集群是如何管理副本对象和分区对象的。

除此之外,还设置了“特别放送”模块,与你分享一些经典的学习资料、参与开源社区的全部流程,解析经典的面试题等,全方位提升你的源码阅读能力和 Kafka 实战能力。

课程目录

适合人群

  1. 对 Kafka 有所了解,或者订阅过《Kafka 核心技术与实战》专栏,想要了解 Kafka 底层原理、掌握源码阅读方法,以及解决实际操作问题的工程师。
  2. 任何对学习源码或者是开源框架感兴趣的软件工程师或架构师。

限时福利

  1. 订阅后,分享专属海报,每邀请一位好友订阅有奖励。
  2. 戳此添加社群管理员,进入技术交流 & 福利群
  3. 戳此申请学生认证,订阅课程一律 5 折。

订阅须知

  1. 本专栏为订阅专栏,更新时间为 2020 年 04 月 13 日至 2020 年 07 月 14 日。订阅成功后,即可通过“极客时间”App 端、小程序端、Web 端永久阅读。
  2. 本专栏更新时间为每周二、四、六,形式为图文 + 音频,定价 99 元。
  3. 企业批量购买请点击“企业充值”了解详情,可支持员工选课,企业支付。
  4. 本专栏为虚拟商品,一经订阅,概不退款。

看过的人还看了

MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 48535 人已学习

拼团 ¥79 原价 ¥99
iOS开发高手课

戴铭  前滴滴出行技术专家

46讲 | 11861 人已学习

拼团 ¥79 原价 ¥99
Kafka核心技术与实战

胡夕  人人贷计算平台部总监,Apache Kafka Contributor

47讲 | 9738 人已学习

¥99
技术领导力实战笔记

TGO鲲鹏会  100位CTO的真知灼见

268讲 | 15493 人已学习

拼团 ¥129 原价 ¥299
Copyright © 2020, The Holding of GeekBang (Beijing) Co., Ltd. All rights reserved. 极客邦控股(北京)有限公司
联系我们

010 - 53934972

service@geekbang.com

北京市朝阳区容和路1号院1号楼5层