01 Apache InLong 简介
- 项目简介:Apache InLong(应龙)是一个一站式海量数据集成框架,提供自动、安全、可靠和高性能的数据传输能力,支持从数据源采集、汇聚、缓存、分拣到目标端存储的全流程,适用于广告、支付、社交、游戏、运营商、人工智能等领域。
- 适用场景:依托腾讯百万亿级别的数据处理能力,InLong 具有简单易用、稳定可靠、灵活扩展等特性,广泛应用于多种业务场景。
02 InLong Manager 简介
- Manager的作用:InLong Manager 通过 Web UI 或命令行工具管理元数据(审批信息、集群配置、数据 schema),串联数据流任务全流程,包括创建目标端库表结构、MQ Topic 和消费者、启动 Flink 任务、下发采集任务等。
03 Manager 的 SPI 改造实践
- 存在的问题:
- 数据源和目标端类型有限,配置表复杂,维护成本高。
- 大量相似代码(if-else/switch-case),扩展困难。
- 新增存储类型需修改表结构和接口代码,不符合开闭原则。
- 什么是 SPI:
- SPI(Service Provider Interface)是 Java 提供的扩展 API,用于启用框架扩展和替换组件。
- 示例:数据库驱动、日志实现、Spring 类型转换等。
- 工作原理:通过配置文件(META-INF/services)动态加载实现类。
- 改造过程:
- 精简服务层代码,删除 if-else/switch-case,通过执行器工厂动态选择配置执行器。
- 重构数据库实体模型,一张表支持任意类型 Sink 的配置,通用字段存储在表中,特有字段以 JSON 格式存储在扩展字段中。
- 改造后的收益:
- 代码复用性提高,减少重复逻辑,降低维护成本。
- 代码扩展性增强,新增类型只需实现特殊逻辑,无需修改接口。
- 表 DDL 不用频繁变动,降低维护成本,避免线上问题。
- 可在不侵入开源代码的情况下扩展内网特有配置类型。
官网:https://inlong.apache.org
代码:https://github.com/apache/inlong
Apache InLong 公众号