Apache Flink 是一个在有界数据流和无界数据流上进行有状态计算的分布式处理引擎和框架。Flink 设计旨在所有常见的集群环境中运行,以任意规模和内存级速度执行计算。Flink CDC 是一个基于流的数据集成工具,支持从数据库变更日志中(如binlog)读取记录进行无锁的增量数据处理。处理任务支持通过 Flink Connector 读取数据,也可以使用 Flink CDC Connector 读取数据。
错误场景描述:业务上对于开启了 binlog 的 MySQL 数据库默认使用 Flink CDC Connector 来读取数据,未开启 binlog 的数据库使用内置的 Flink Connector 读取数据。测试环境上的某个未开启 binlog 的 MySQL 数据库的任务平时可以正常运行,在没有修改代码的情况下突然无法启动了。
排查最后的结果:由于数据量较大,需要的内存较多,但 TaskManager 设置的内存过小,频繁GC导致任务无法正常运行。