Kafka核心源码解读
胡夕
友信金服商业智能部总监,Apache Kafka Contributor
立即订阅
3688 人已学习
课程目录
已更新 41 讲 / 共 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是怎么异步更新元数据缓存的?
消费者组管理模块 (6讲)
27 | 消费者组元数据(上):消费者组都有哪些元数据?
28 | 消费者组元数据(下):Kafka如何管理这些元数据?
29 | GroupMetadataManager:组元数据管理器是个什么东西?
30 | GroupMetadataManager:位移主题保存的只是位移吗?
31 | GroupMetadataManager:查询位移时,不用读取位移主题?
32 | GroupCoordinator:在Rebalance中,Coordinator如何处理成员入组?
特别放送 (5讲)
特别放送(一)| 经典的Kafka学习资料有哪些?
特别放送(二)| 一篇文章带你了解参与开源社区的全部流程
特别放送(三)| 我是怎么度过日常一天的?
特别放送(四)| 20道经典的Kafka面试题详解
特别放送(五) | Kafka 社区的重磅功能:移除 ZooKeeper 依赖
Kafka核心源码解读
15
15
1.0x
00:00/00:00
登录|注册

特别放送(五) | Kafka 社区的重磅功能:移除 ZooKeeper 依赖

胡夕 2020-06-27
你好,我是胡夕。今天,我们来聊聊 Kafka 社区的一个重磅功能:移除 ZooKeeper 依赖
Kafka 从诞生开始,就跟 ZooKeeper 紧紧地绑在了一起。可以这么说,没有 ZooKeeper,就没有 Kafka 今天的成功。
但是,随着 Kafka 的不断完善和演进,社区逐渐发现,在 ZooKeeper 和 Kafka 结合使用的过程中,一些问题慢慢地显现了出来。比如说,ZooKeeper 并不适合于频繁的写操作,但 Kafka 0.8 时代的消费者就是利用 ZooKeeper 来保存其位移信息的。因此,移除 ZooKeeper 并使用 Kafka 内部主题的方式保存位移,就从根本上规避了 ZooKeeper 的这个弊病。
摆脱 ZooKeeper 依赖的另一个好处在于,这能让 Kafka 变成一个独立的框架。这样,以后在使用 Kafka 时,就不需要再额外维护一套 ZooKeeper 集群了。显然,安装、运维和调优一套分布式集群的代价是很高的,能够去除这样的依赖当然是一件好事。
讲到这里,我猜你一定很想知道,社区究竟打算怎么移除 ZooKeeper 呢?别急,我带你一步步来看下社区的计划。

Clients 演进

首先,我们来看两张图。这两张图总结了 0.8.x 版本和 0.11.x 版本(是否真的是从 0.11 版本开始的变化并不重要)及后续版本的功能变迁。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Kafka核心源码解读》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • JustDoDT
    讲得真不错

    作者回复: 谢谢鼓励:)

    2020-06-27
    1
  • Cryhard
    等这一切都实现,应该是2021年的3.0版本了吧?

    作者回复: 这个要看KIP-500的进度了:)

    2020-06-28
收起评论
2
返回
顶部