在 Flink 中,当你遇到严重的数据背压导致 Checkpoint Barrier 被阻塞(Aligned Checkpoint 的机制要求 Barrier 必须随着数据流移动),进而导致 Checkpoint 频繁超时甚至卡死时,开启 Unaligned Checkpoint (UAC) 是官方推荐的破局方案。 UAC 的核心原理是:让 Barrier “插队”越过那些堆积在 Buffer 中的数据,同时把这些被越过的数据(In-flight data / Channel State)也一起保存到 Checkpoint 状态中。 虽然它能有效解决背压下的 Checkpoint 卡死问题,但这并不是没有代价的。开启 UAC 会带来以下几个显著的副作用和潜在影响: 1. Checkpoint 状态体积急剧膨胀(最主要的副作用) 原因:传统的对齐 Checkpoint 只保存算子内部的 State。而 UAC 为了保证 Exactly-Once,必须把输入缓冲区(Input Buffers)和输出缓冲区(Output Buffers)中积压的大量数据也作为状态的一部分写入到分布式存...