Kafka核心源码解读
胡夕
友信金服商业智能部总监,Apache Kafka Contributor
立即订阅
3653 人已学习
课程目录
已更新 40 讲 / 共 44 讲
0/4登录后,你可以任选4讲全文学习。
课前必学 (3讲)
开篇词 | 阅读源码,逐渐成了职业进阶道路上的“必选项”
免费
导读 | 构建Kafka工程和源码阅读环境、Scala语言热身
重磅加餐 | 带你快速入门Scala语言
日志模块 (5讲)
01 | 日志段:保存消息文件的对象是怎么实现的?
02 | 日志(上):日志究竟是如何加载日志段的?
03 | 日志(下):彻底搞懂Log对象的常见操作
04 | 索引(上):改进的二分查找算法在Kafka索引的应用
05 | 索引(下):位移索引和时间戳索引的区别是什么?
请求处理模块 (5讲)
06 | 请求通道:如何实现Kafka请求队列?
07 | SocketServer(上):Kafka到底是怎么应用NIO实现网络通信的?
08 | SocketServer(中):请求还要区分优先级?
09 | SocketServer(下):请求处理全流程源码分析
10 | KafkaApis:Kafka最重要的源码入口,没有之一
Controller模块 (5讲)
11 | Controller元数据:Controller都保存有哪些东西?有几种状态?
12 | ControllerChannelManager:Controller如何管理请求发送?
13 | ControllerEventManager:变身单线程后的Controller如何处理事件?
14 | Controller选举是怎么实现的?
15 | 如何理解Controller在Kafka集群中的作用?
期中测试 (1讲)
期中测试 | 这些源码知识,你都掌握了吗?
状态机模块 (3讲)
16 | TopicDeletionManager: Topic是怎么被删除的?
17 | ReplicaStateMachine:揭秘副本状态机实现原理
18 | PartitionStateMachine:揭秘分区状态机实现原理
延迟操作模块 (2讲)
19 | TimingWheel:探究Kafka定时器背后的高效时间轮算法
20 | DelayedOperation:Broker是怎么延时处理请求的?
副本管理模块 (6讲)
21 | AbstractFetcherThread:拉取消息分几步?
22 | ReplicaFetcherThread:Follower拉取Leader消息是如何实现的?
23 | ReplicaManager(上):必须要掌握的副本管理类定义和核心字段
24 | ReplicaManager(中):副本管理器是如何读写副本的?
25 | ReplicaManager(下):副本管理器是如何管理副本的?
26 | MetadataCache:Broker是怎么异步更新元数据缓存的?
消费者组管理模块 (5讲)
27 | 消费者组元数据(上):消费者组都有哪些元数据?
28 | 消费者组元数据(下):Kafka如何管理这些元数据?
29 | GroupMetadataManager(上):组元数据管理器是个什么东西?
30 | GroupMetadataManager(中):位移主题保存的只是位移吗?
31 | GroupMetadataManager(下):查询位移时,不用读取位移主题?
特别放送 (5讲)
特别放送(一)| 经典的Kafka学习资料有哪些?
特别放送(二)| 一篇文章带你了解参与开源社区的全部流程
特别放送(三)| 我是怎么度过日常一天的?
特别放送(四)| 20道经典的Kafka面试题详解
特别放送(五) | Kafka 社区的重磅功能:移除 ZooKeeper 依赖
Kafka核心源码解读
15
15
1.0x
00:00/00:00
登录|注册

特别放送(二)| 一篇文章带你了解参与开源社区的全部流程

胡夕 2020-05-12
你好,我是胡夕。从课程上线开始,我就经常被问到这样一个问题:“我想参与到 Apache Kafka 社区,应该怎么做呢?”今天,我就为你梳理一下参与 Apache 开源社区,特别是 Kafka 社区的最佳实践步骤。
参照着这套最佳实践,你能够轻松地参与到社区的日常开发中,甚至是成为社区 Contributor 中的一员。即使你暂时不打算加入社区开发,在你遇到 Kafka 难题时,这套实践法则也可以帮助你快速地找到适当的资源,节省你的时间成本。比如说,在诊断很多 Kafka 问题时,社区邮件组和 Jira 列表往往是比搜索引擎更好的工具。
大体上说,我们参与开源社区通常需要完成 5 步,如下图所示:
虽然我在上图为每一步都标记了序号,但这并不表示它们之间是有先后关联顺序的,你完全可以按照任意顺序去实现它们。接下来,我就带你一步步梳理这五个方面。

1. 精通 Kafka 源代码

你需要非常了解 Kafka 的源代码,毕竟,我们参与到开源社区的目的就是贡献我们自己的代码。不管是要修复 Bug,还是想要为 Kafka 新增任何功能,你都要提前了解相关的源码才能进行。我们目前的这门课就是帮你完成此事的。认真学完这个课程,你至少可以对 Kafka 服务器端的源代码有一个深入而广泛的了解,为你后续贡献这部分代码奠定基础。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Kafka核心源码解读》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • yellowcloud
    老师。看完您的这篇文章后,我也跃跃欲试了,但是初学者水平有限,不知道何时才能向kafka社区贡献代码,成为Contributor 的一员。

    作者回复: 慢慢来。可以找个具体的jira问题尝试跟踪下去

    2020-05-25
  • 言希
    老师您好,我问下 jira id是指jira的用户名嘛 ?

    作者回复: 是的是的~

    2020-05-18
收起评论
2
返回
顶部