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