首页/数据/数据工程与 ETL 速查/Flink CDC 与 checkpoint 位点提交
CDC 与同步53 条

Flink CDC 与 checkpoint 位点提交

Flink CDC 的增量位点随 checkpoint 提交:源算子把 binlog 位点写进检查点,故障恢复从最近成功检查点续读(可能少量重复,靠下游幂等兜底);没开 checkpoint 的作业重启只能按启动模式重来。

生产建议的检查点配置

生产建议的检查点配置
SET 'execution.checkpointing.interval' = '30s';
SET 'execution.checkpointing.mode' = 'EXACTLY_ONCE';
-- 恢复示例:flink run -s :savepointPath: -c 主类 app.jar
位点提交时机随 checkpoint 完成
恢复语义从最近检查点续读,可能重复少量事件
下游要求upsert/幂等写入消化重复
间隔权衡过小:检查点开销大;过大:恢复回放量大
端到端不重复还取决于 sink 是否支持事务或幂等:EXACTLY_ONCE 检查点不等于端到端精确一次。

易错点

  • 误以为端到端精确一次,下游不做幂等,恢复后出现重复
  • 检查点存储放在本机磁盘,机器故障后无法恢复

数据来源与参考

  • Apache Flink 官方文档(Checkpointing)
  • Flink CDC 官方文档(checkpoint 与位点)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌