Archive
文章
-
Flink 源码阅读:15. StateBackend
HeapStateBackend 与 RocksDBStateBackend 的源码对比与选型建议。
-
Flink 源码阅读:09. 反压机制 (Backpressure)
Credit-based Flow Control 详解。Flink 如何优雅地处理下游消费不过来的情况。
-
Flink 源码阅读:05. 调度中心 (ExecutionGraph)
JobMaster 如何将 JobGraph 转化为可执行的 ExecutionGraph,并申请 Slot。
-
Flink 源码阅读:02. 项目结构与核心模块
Flink 源码目录结构详解。flink-runtime, flink-streaming-java, flink-core 等模块的功能定位。
-
Flink 源码阅读:11. Operator Chain (算子链)
Flink 如何通过 Operator Chain 减少序列化开销和线程切换。
-
Flink 源码阅读:18. High Availability (HA)
基于 ZooKeeper 和 Kubernetes 的 Leader 选举与元数据存储。
-
Flink 源码阅读:08. 通信层实现 (RPC & Data)
基于 Akka 的控制流 RPC 与基于 Netty 的数据流传输。
-
Flink 源码阅读:20. Table Runtime (代码生成)
Code Generation 技术详解。为什么 Flink SQL 比手写 Java 代码还快?
-
Flink 源码阅读:06. Task 调度与执行
TaskManager 如何启动 Task?Slot、Task、SubTask 的关系,以及 Task 线程模型。
-
Flink 源码阅读:14. TimerService (时间轮)
Flink 如何高效管理数百万个定时器?基于时间轮 (Timing Wheel) 还是优先队列?
-
Flink 源码阅读:12. Watermark 机制
水位线 (Watermark) 的生成、传播与处理乱序数据的原理。
-
Flink 源码阅读:07. 内存管理机制
Flink 如何管理堆外内存?MemorySegment 与 Network Buffer 的设计。
-
Flink 源码阅读:10. StreamGraph 生成
DataStream API 如何转化为流图。StreamGraphGenerator 源码解析。
-
Flink 源码阅读:13. Window Operator
窗口分配器 (Assigner)、触发器 (Trigger) 与驱逐器 (Evictor) 的实现。
-
Flink 源码阅读:16. Checkpoint 核心流程
Chandy-Lamport 算法在 Flink 中的实现。Barrier 对齐与异步快照。
-
Flink 源码阅读:03. 启动流程详解
Flink Cluster 的启动流程,从 Entrypoint 到 Dispatcher 和 ResourceManager 的初始化。
-
Flink 源码阅读:19. Flink SQL 编译流程
从 SQL 语句到 Physical Plan。Calcite 在 Flink SQL 中的应用。
-
Flink 源码阅读:00. 阅读大纲与学习路线
Apache Flink 源码阅读系列大纲。从 JobGraph 到 Task 调度,从 Checkpoint 到反压机制,全链路源码解析。
-
Flink 源码阅读:04. 提交流程 (JobGraph)
Client 端如何将用户代码转化为 JobGraph,并提交给 Dispatcher。
-
Flink 源码阅读:01. 源码编译与环境搭建
工欲善其事,必先利其器。如何编译 Flink 源码,并在 IDEA 中运行 WordCount 示例进行 Debug。