在 Flink 中,检测反压(Backpressure)是保障作业稳定性的关键步骤。反压意味着下游算子的处理速度跟不上上游算子的生产速度,导致数据在传输层堆积。 检测 Flink 反压主要有以下三种方式,按推荐程度排序: --- 1. Flink Web UI(最直观、最常用) 从 Flink 1.13 版本开始,Web UI 提供了非常直观的负载分析功能。 A. 概览图中的状态(Busy vs. Backpressured) 在作业的 DAG 图(JobGraph)中,直接观察每个算子的以下两个指标: Backpressured(被反压):表示该算子因为下游处理不过来,导致无法发送数据的时间占比。 如果该值很高(如 100%),说明瓶颈在下游。 Busy(忙碌):表示该算子实际在处理数据(计算)的时间占比。 如果该值很高(如 100%),说明瓶颈就是该算子自己(CPU 密集或逻辑复杂)。 Idle(空闲):表示该算子在等待上游数据的时间占比。 如何定位瓶颈? 沿着数据流向观察:找到第一个 Backpressured 为低(或 0%) 但 Busy 为高(接近 100%) 的算子...