# flink-framework **Repository Path**: CCSSPP/flink-framework ## Basic Information - **Project Name**: flink-framework - **Description**: 以 Flink、Flink CDC 为基础研发的数据中心 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-21 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flink Framework 基于 Apache Flink 和 Apache Flink CDC 的企业级流处理扩展框架。 ## 项目简介 本项目以 Apache Flink 和 Apache Flink CDC 为基础,开发了一套企业级流处理扩展框架。核心目标是增强 Flink Pipeline 的可配置性(支持本地、Nacos、中心化配置等),并支持自定义扩展 Flink Source,如 JDBC 定时轮询方案、TCP 网络连接等。 ## 核心技术栈 - **Apache Flink**: 1.20.1 - **Apache Flink CDC**: 3.4.0 - **Spring Cloud Alibaba**: 2021.0.1.0 - **Java**: 1.8 - **Scala**: 2.12 ## 核心功能 ### 配置管理 - 多种配置方式:本地文件、Nacos 配置中心、中心化配置服务 - Pipeline YAML 配置化 - 配置热加载支持 ### 数据源连接器 - **JDBC Source**: 支持定时轮询 JDBC 数据源,支持多表同步 - **CDC MySQL Source**: 基于 Flink CDC 的 MySQL binlog 实时同步 - **Kafka Source/Sink**: 支持 Kafka 消息队列 - **TCP Source**: 基于 Netty 的 TCP 网络数据接入 - **Value Sink**: 测试用,输出到控制台 ### 部署模式 - LOCAL: 本地模式 - REMOTE: 远程集群模式 - YARN_SESSION: YARN Session 模式 - YARN_APPLICATION: YARN Application 模式 - KUBERNETES_APPLICATION: Kubernetes Application 模式 ## 模块架构 ``` flink-framework ├── flink-core # 核心模块 - 配置抽象和通用组件 ├── flink-config # 配置管理模块 │ ├── flink-config-base # 配置基础抽象 │ └── flink-config-nacos # Nacos 配置支持 ├── flink-connector-pipeline # Pipeline 连接器模块 │ ├── flink-connector-pipeline-jdbc # JDBC 定时轮询 Source │ ├── flink-connector-pipeline-cdc-mysql # MySQL CDC Source │ ├── flink-connector-pipeline-kafka # Kafka Source/Sink │ ├── flink-connector-pipeline-tcp # TCP 网络 Source │ └── flink-connector-pipeline-value # 值 Sink ├── flink-catalog # Catalog 模块 ├── flink-starter # 启动模块 ├── flink-datasource-mysql # MySQL 数据源模块 ├── flink-transform # 数据转换模块 └── flink-manage # 管理模块 ``` ## 快速开始 ### 前提条件 - Java 1.8+ - Maven 3.x - Apache Flink 1.20.1 ### 编译构建 ```bash mvn clean install -DskipTests ``` ### 运行示例 项目提供了多个测试示例,编译完成后可参考对应模块的示例运行。 ## 配置示例 ### JDBC Source 配置 ```yaml source: type: jdbc name: MySQL Source url: jdbc:mysql://localhost:3306 database-name: mydb username: user password: pass scan: table-path: mydb.table_name scheduler-interval: 300 timestamp-column: update_time fetch-size: 1000 sink: type: values name: TestSink pipeline: parallelism: 1 name: MySQL to Value Pipeline ``` ## 技术亮点 ### 可配置性 - 多种配置方式(本地、Nacos、中心化) - Pipeline YAML 配置化 - 配置热加载 ### 扩展性 - 统一的 Source/Sink 接口 - 插件化架构 - 易于添加新的数据源 ## 开发计划 - [x] 核心模块框架搭建 - [x] JDBC Source 实现(支持定时轮询) - [x] TCP Source 实现(基于 Netty) - [x] Kafka Source/Sink 实现 - [x] CDC MySQL Source 实现 - [x] 配置管理基础实现 - [x] 多种部署模式支持 - [ ] Nacos 配置集成完善 - [ ] 中心化配置服务 - [ ] 管理控制台