前言
为了方便大家阅读,单独用一篇文章罗列出各个技术源码的阅读目录,目前主要分为以下几个方向:
Kafka、JDK、Spring、Spring Boot、Spring Cloud
版本信息
项目源码因版本不同会有较大的差异,尤其是kafka,请尽量找相似或相同的版本号作为参考
名称 | 版本 | github源码阅读项目地址 |
---|---|---|
kafka | 2.0.1 | https://github.com/GreedyPirate/kafka |
Spring-framework | 5.2.4.RELEASE | https://github.com/GreedyPirate/spring-framework |
JDK | java8 | https://github.com/GreedyPirate/jdk-source |
Kafka阅读顺序解读
以消息的流向为顺序,分为生产者,broker,消费者
生产者
生产者相关源码文章如下
基础学习:ByteBuffer浅显易懂的图解原理
Kafka生产者源码浅析(一)
Kafka生产者源码浅析(二)
Kafka生产者源码浅析(三)
broker
broker端较为复杂,我建议从以下顺序开始阅读
语法与环境
快速学习scala语言及常用语法汇总
kafka源码环境搭建
kafka本地启动后不打印日志问题
网络模型与请求处理
kafka网络请求处理模型
kafka server端源码分析之接收消息
kafka-server端源码分析之拉取消息
ZooKeeper模块与Controller模块
kafka-server端源码分析之Zookeeper初始化与Watcher监听事件分发
KafkaController源码分析之Controller选举与初始化
KafkaController源码分析之副本状态机与分区状态机的启动
KafkaController源码分析之分区副本重分配(PartitionReassignment)与Preferred leader副本选举
KafkaController源码分析之LeaderAndIsr请求
KafkaController源码分析之Broker的上线与下线
kafka server端源码分析之副本同步
消费者
Kafka消费者-源码分析(上)
kafka消费者-获取Coordinator
kafka-rebalance之JoinGroup
kafka-rebalance之SyncGroup
Kafka消费者-OffsetFetch请求
Kafka消费者-ListOffsets请求
Kafka消费者-源码分析(下)
Spring
Spring-framework
IOC容器相关
Spring IOC容器启动之初始化上下文
Spring IOC容器之refresh流程(一)
Spring IOC容器之解析并注册BeanDefinition