1970-01-01

00 重磅加餐 带你快速入门Scala语言你好,我是胡夕。最近,我在留言区看到一些同学反馈说“Scala语言不太容易理解”,于是,我决定临时加一节课,给你讲一讲Scala语言的基础语法,包括变量和函数的定义、元组的写法、函数式编程风格的循环语句的写法...

1970-01-01

04 索引(上):改进的二分查找算法在Kafka索引的应用你好,我是胡夕。今天,我来带你学习一下Kafka源码中的索引对象,以及改进版二分查找算法(Binary Search Algorithm)在索引中的应用。 为什么要阅读索引源码?坦率地说,你在...

1970-01-01

03 日志(下):彻底搞懂Log对象的常见操作你好,我是胡夕。上节课,我们一起了解了日志加载日志段的过程。今天,我会继续带你学习Log源码,给你介绍Log对象的常见操作。 我一般习惯把Log的常见操作分为4大部分。 高水位管理操作 :高水位的概念在...

1970-01-01

07 SocketServer(上):Kafka到底是怎么应用NIO实现网络通信的?你好,我是胡夕。这节课我们来说说Kafka底层的NIO通信机制源码。 在谈到Kafka高性能、高吞吐量实现原理的时候,很多人都对它使用了Java NIO这件事津津乐道...

1970-01-01

08 SocketServer(中):请求还要区分优先级?你好,我是胡夕。 在上节课,我给你详细地介绍了Kafka网络层的架构,以及SocketServer组件中的Acceptor线程和Processor线程是如何利用Java NIO实现网络通信的,...

1970-01-01

09 SocketServer(下):请求处理全流程源码分析你好,我是胡夕。前几节课,我们花了很多时间学习SocketServer核心组件的源代码,包括Acceptor线程、Processor线程,也研究了Data plane和Control pla...

1970-01-01

10 KafkaApis:Kafka最重要的源码入口,没有之一你好,我是胡夕。今天,我们来收尾Kafka请求处理模块的源码学习。讲到这里,关于整个模块,我们还有最后一个知识点尚未掌握,那就是KafkaApis类。 在上节课中,我提到过,请求的实际处理...

1970-01-01

11 Controller元数据:Controller都保存有哪些东西?有几种状态?你好,我是胡夕。从今天开始,我们正式进入到第三大模块的学习:控制器(Controller)模块 。 提起Kafka中的Controller组件,我相信你一定不陌生。从...

1970-01-01

12 ControllerChannelManager:Controller如何管理请求发送?你好,我是胡夕。上节课,我们深入研究了ControllerContext.scala源码文件,掌握了Kafka集群定义的重要元数据。今天,我们来学习下Con...

1970-01-01

13 ControllerEventManager:变身单线程后的Controller如何处理事件?你好,我是胡夕。 今天,我们来学习下Controller的单线程事件处理器源码。 所谓的单线程事件处理器,就是Controller端定义的一个组件。该...

1383940414266