项目源码

本文对 scaleph 项目的源码进行介绍。

Web IDE

工欲利其事,必先利其器,一个好的源码阅读工具是必不可少的。

开发者阅读源码时,习惯于先 fork,在 clone 到本地,导入 IDE,受限于网络环境,很多人的源码阅读可能直接在 fork 环节阻碍而直接胎死腹中。

在这里,推荐几种在浏览器中进行源码阅读的方式:

源码结构

源码目录如下:

scaleph ├── docs ├── scaleph-api # scaleph 服务端入口 ├── scaleph-application # scaleph 应用管理模块。参考 OAM 模型,管理 Flink 和 Doris 实例 │ ├── scaleph-application-doris # Doris OAM 适配模块 │ ├── scaleph-application-flink # Flink OAM 适配模块 │ └── scaleph-application-oam # OAM 模块 ├── scaleph-common ├── scaleph-config ├── scaleph-dao ├── scaleph-dataservice # 数据服务 ├── scaleph-datasource # 数据源管理 ├── scaleph-dist # scaleph 打包模块 ├── scaleph-engine │ ├── scaleph-engine-flink-client # Flink Web UI 接口对接。待迁移出 scaleph 项目 │ ├── scaleph-engine-sql-gateway # Flink SQL Gateway 集成。待迁移出 scaleph 项目 │ └── scaleph-sql-template # Flink SQL Template Jar。待迁移出 scaleph 项目 ├── scaleph-file-fetcher # 文件下载 sidecar 实现 ├── scaleph-kubernetes # Kubernetes 相关功能 ├── scaleph-meta # 元数据模块。后续对接 gravitino,与 scaleph-datasource 打通 ├── scaleph-plugins # 插件模块 │ ├── scaleph-plugin-datasource # 数据源插件,暂未启用 │ ├── scaleph-plugin-flinkcdc # Flink-CDC pipeline connectors 插件 │ ├── scaleph-plugin-framework # 插件框架 │ ├── scaleph-plugin-seatunnel-connectors # SeaTunnel v2 connectors 插件 │ └── scaleph-plugin-seatunnel-native-flink # SeaTunntl v1 connectors 插件,暂未启用 ├── scaleph-resource # 资源模块,提供文件上传下载 ├── scaleph-security # 用户权限模块 ├── scaleph-support │ ├── scaleph-cache # 缓存模块 │ ├── scaleph-dag # Dag 模块。已接入 SeaTunnel、 Flink-CDC 和 WorkFlow │ ├── scaleph-generator # 代码生成模块。生成 mybatis-plus 的 entity、mapper、xml │ ├── scaleph-log # 日志模块,存储用户登录、操作日志,站内信,调度日志等 │ ├── scaleph-mail # 邮箱模块。如发送用户激活邮件 │ ├── scaleph-privilege # 系统权限模块。防止插件调用 `System.exit()` 导致 JVM 退出 │ ├── scaleph-queue # 队列封装,目前基于 spring event 机制,后续可扩展至 Kafka 等消息队列 │ ├── scaleph-storage # 存储模块。基于 HDFS 文件系统实现 │ └── scaleph-system # 系统模块。配置、字典等 ├── scaleph-ui-react # 基于 React + antd 开发的 ui,使用中 ├── scaleph-ui-react2 # 基于 React + antd 开发的 ui,已废弃,模块待移除 ├── scaleph-workflow # workflow 模块,提供调度功能 │ ├── scaleph-workflow-api │ └── scaleph-workflow-quartz # 基于 Quartz 实现 WorkFlow Trigger ├── scaleph-workspace # 工作空间。 │ ├── scaleph-workspace-flink # Flink 相关。主要是 Flink Jar │ ├── scaleph-workspace-flink-cdc # Flink CDC 相关 │ ├── scaleph-workspace-flink-sql # Flink SQL 相关 │ ├── scaleph-workspace-project # 项目模块。工作空间按照项目隔离 │ └── scaleph-workspace-seatunnel # SeaTunnel 相关 └── tools ├── checkstyle ├── docker # Docker 工具 ├── kubernetes # Kubernetes 工具,内部包含了对 flink-kubernetes-operator、prometheus 或 grafana 等定制 └── spotbugs