Kafka核心源码解读- 极客时间课程推荐/优惠

Kafka核心源码解读--极客时间课程推荐/优惠

从底层到实战,深度解析源码
胡夕Apache Kafka Committer,老虎证券技术总监
专栏 | 44讲 | 19791人已学习
优惠价¥59原价:99
官网优惠购买

版权声明

本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

你将获得

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

课程介绍

谈到源码分析,很多人会有这样的疑问:“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实战能力。

课程目录

课前必学

  • 开篇词 | 阅读源码,逐渐成了职业进阶道路上的“必选项”
  • 导读 | 构建Kafka工程和源码阅读环境、Scala语言热身
  • 重磅加餐 | 带你快速入门Scala语言

日志模块

  • 01 | 日志段:保存消息文件的对象是怎么实现的?
  • 02 | 日志(上):日志究竟是如何加载日志段的?
  • 03 | 日志(下):彻底搞懂Log对象的常见操作
  • 04 | 索引(上):改进的二分查找算法在Kafka索引的应用
  • 05 | 索引(下):位移索引和时间戳索引的区别是什么?

特别放送

  • 特别放送(一)| 经典的Kafka学习资料有哪些?
  • 特别放送(二)| 一篇文章带你了解参与开源社区的全部流程
  • 特别放送(三)| 我是怎么度过日常一天的?
  • 特别放送(四)| 20道经典的Kafka面试题详解
  • 特别放送(五) | Kafka 社区的重磅功能:移除 ZooKeeper 依赖

请求处理模块

  • 06 | 请求通道:如何实现Kafka请求队列?
  • 07 | SocketServer(上):Kafka到底是怎么应用NIO实现网络通信的?
  • 08 | SocketServer(中):请求还要区分优先级?
  • 09 | SocketServer(下):请求处理全流程源码分析
  • 10 | KafkaApis:Kafka最重要的源码入口,没有之一

Controller模块

  • 11 | Controller元数据:Controller都保存有哪些东西?有几种状态?
  • 12 | ControllerChannelManager:Controller如何管理请求发送?
  • 13 | ControllerEventManager:变身单线程后的Controller如何处理事件?
  • 14 | Controller选举是怎么实现的?
  • 15 | 如何理解Controller在Kafka集群中的作用?

状态机模块

  • 16 | TopicDeletionManager: Topic是怎么被删除的?
  • 17 | ReplicaStateMachine:揭秘副本状态机实现原理
  • 18 | PartitionStateMachine:分区状态转换如何实现?

延迟操作模块

  • 19 | TimingWheel:探究Kafka定时器背后的高效时间轮算法
  • 20 | DelayedOperation:Broker是怎么延时处理请求的?

副本管理模块

  • 21 | AbstractFetcherThread:拉取消息分几步?
  • 22 | ReplicaFetcherThread:Follower如何拉取Leader消息?
  • 23 | ReplicaManager(上):必须要掌握的副本管理类定义和核心字段
  • 24 | ReplicaManager(中):副本管理器是如何读写副本的?
  • 25 | ReplicaManager(下):副本管理器是如何管理副本的?
  • 26 | MetadataCache:Broker是怎么异步更新元数据缓存的?

消费者组管理模块

  • 27 | 消费者组元数据(上):消费者组都有哪些元数据?
  • 28 | 消费者组元数据(下):Kafka如何管理这些元数据?
  • 30 | GroupMetadataManager:位移主题保存的只是位移吗?
  • 29 | GroupMetadataManager:组元数据管理器是个什么东西?
  • 31 | GroupMetadataManager:查询位移时,不用读取位移主题?
  • 32 | GroupCoordinator:在Rebalance中,Coordinator如何处理成员入组?
  • 33 | GroupCoordinator:在Rebalance中,如何进行组同步?

测试题

  • 期中测试 | 这些源码知识,你都掌握了吗?
  • 期末测试 | 一套习题,测试你的掌握程度

结束语

  • 结束语 | 源码学习,我们才刚上路呢

作者介绍

胡夕,Apache Kafka Committer,老虎证券用户增长团队负责人,著有《Apache Kafka实战》一书,曾任职于IBM、搜狗和新浪微博等公司。胡夕对Kafka及其他开源流处理框架与技术有深刻理解,精通Kafka原理,主导过多个十亿级/天的消息引擎业务系统的设计与搭建,具有丰富的线上环境定位和诊断调优经验,曾给多家大型公司提供企业级Kafka培训。

作者其他课程

Kafka核心技术与实战 - 极客时间课程推荐/分享/优惠/折扣
Kafka核心技术与实战
全面提升你的Kafka实战能力
胡夕Apache Kafka Committer,老虎证券技术总监
专栏 | 54208人已学习
优惠价¥68原价:199
官网优惠购买

推荐

etcd实战课 - 极客时间课程推荐/分享/优惠/折扣
etcd实战课
etcd 核心原理到大规模实践
唐聪腾讯云资深工程师,etcd活跃贡献者
专栏 | 29206人已学习
优惠价¥59原价:129
官网优惠购买
零基础开发Agent智能体 - 极客时间课程推荐/分享/优惠/折扣
零基础开发Agent智能体
为企业数智化转型插上翅膀
李永恒北电数智大模型产品副总监
视频课 | 548人已学习
优惠价¥29原价:39
官网优惠购买
eBPF核心技术与实战 - 极客时间课程推荐/分享/优惠/折扣
eBPF核心技术与实战
用eBPF洞悉内核运行状态
倪朋飞资深 Linux 专家,Kubernetes 项目维护者
专栏 | 11454人已学习
优惠价¥59原价:129
官网优惠购买
手把手教你落地DDD - 极客时间课程推荐/分享/优惠/折扣
手把手教你落地DDD
25年技术老兵的DDD学习指南
钟敬Thoughtworks首席咨询师、数字化转型与运营团队DDD负责人
专栏 | 21999人已学习
优惠价¥59原价:129
官网优惠购买
性能工程高手课 - 极客时间课程推荐/分享/优惠/折扣
性能工程高手课
得性能者得天下
庄振运Facebook性能优化和容量管理高级专家
专栏 | 25302人已学习
优惠价¥59原价:129
官网优惠购买
现代React Web开发实战 - 极客时间课程推荐/分享/优惠/折扣
现代React Web开发实战
React新版本+函数组件&Hooks优先=高效进阶
宋一玮FreeWheel 中国研发中心前端架构师
专栏 | 17121人已学习
优惠价¥59原价:99
官网优惠购买