多模块项目怎么切入:先画架构图,再定深入点
本周主线
学习过渡周:从」补基础」转向」理解部门项目 Omni 生态」。
- 补上游机制:组内 wiki、Spark / Flink 对比。
- 深研 Flink 设计:状态管理、事件时间、容错。
- 研读 Omni 生态:理解各模块架构定位。
- 走一遍 OmniStream 的编译部署流程。
深入:多模块项目从哪切入
Omni 生态有多个仓库:C++ 算子引擎、对接 Spark / Flink 的 adaptor、流处理链路。模块多、依赖复杂,直接在源码里钻会迷路。
解法是 先画模块关系图,再定深入点。
flowchart TB
subgraph Omni[Omni 生态]
Operator[OmniOperator<br/>C++ 算子执行引擎]
AdaptorSpark[Adaptor-Spark]
AdaptorFlink[Adaptor-Flink]
Stream[OmniStream]
end
AdaptorFlink --> Stream
Stream --> Operator研读重点是 Adaptor-Flink 和 Stream 这条链路 —— 它决定了 SQL 怎么落到本地执行。切入口选对,后面的源码阅读才有方向。
同时动手走一遍 OmniStream 的编译部署:理解产物从哪里来、装到哪里去,为以后」自己改代码、自己验证」做准备。
其他要点
- Flink 设计深研:流批一体、状态管理、事件时间与窗口、Checkpoint 容错。
- 环境策略:网卡没到位、开发环境搭不起来 —— 这段时间不做无用等待,转为源码阅读和架构理解。
沉淀与下一步
三点经验:架构图是路线图、代码是实现细节;环境受限时做纯脑力工作;学习周要留消化时间。
下一步:网卡到位后搭基础环境,进入 930 分支的编译测试流程梳理。
参考资料
- Apache Flink 官方文档:https://flink.apache.org/
- Apache Spark 官方文档:https://spark.apache.org/