Apache Flink 的 Checkpoint(检查点)机制是其能够提供 Exactly-Once(精确一次) 状态一致性保证的核心。 简单来说,Checkpoint 就是 Flink 在某个特定时间点上,对整个作业的所有状态(State)做的一个全局快照(Snapshot)。 以下是 Flink Checkpoint 的底层原理深度解析,主要包含核心算法、执行流程、对齐机制和状态存储四个方面。 --- 1. 核心算法:Chandy-Lamport 变体 (ABS) Flink 的 Checkpoint 算法基于经典的 Chandy-Lamport 分布式快照算法,但针对流处理做了优化,称为 异步屏障快照(Asynchronous Barrier Snapshotting, ABS)。 核心思想: Flink 不会“停止整个世界”(Stop-the-world)来做备份,而是通过在数据流中注入特殊的标记——Barrier(屏障),让 Barrier 随着数据一起流动。Barrier 将数据流切分为“Checkpoint N 之前的数据”和“Checkpoint N 之后的数据...