多模块项目怎么切入:先画架构图,再定深入点

本周主线

学习过渡周:从」补基础」转向」理解部门项目 Omni 生态」。

  1. 补上游机制:组内 wiki、Spark / Flink 对比。
  2. 深研 Flink 设计:状态管理、事件时间、容错。
  3. 研读 Omni 生态:理解各模块架构定位。
  4. 走一遍 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 分支的编译测试流程梳理。

参考资料