在 Flink 中看到大面积红色的 “High” 背压(Backpressure),是一个非常经典的现象。 首先需要澄清一个 Flink 的核心概念:“Source 读太快” 从来不是引起背压的根本原因。Flink 采用的是基于信用值(Credit-based)的拉取网络模型,如果下游处理不过来,Source 自然会被“憋住”(显示为背压高),这是 Flink 保护自身的健康机制。 因此,真正的瓶颈永远在产生背压的最下游(或者说是背压传播的源头)。 以下是我在生产环境中排查大面积背压问题的标准步骤: 第一步:顺藤摸瓜,定位“真正的”瓶颈节点 背压是由下游向上游传播的。当你在 UI 上看到一片红时,不要惊慌,按照数据流向(从 Source 到 Sink)去观察拓扑图。 1. 观察 和 指标(Flink 1.13+ 提供): 上游节点: 很高(红色), 较低。(因为数据发不出去,被迫空闲)。 瓶颈节点: 很低(绿色),但 极高(接近 100%,通常也是红色/深色)。 下游节点: 很低, 也很低。(因为上游卡住了,下游处于“饥饿”状态,没数据可处理)。 2. 结论: 找到那个 自己不背...