Flink 间歇性高延迟

问题描述 投票:0回答:1

我正在使用一个 Apache Flink 应用程序,该应用程序从 Kafka 读取数据流。应用程序处理流,从数据创建对象,并通过标记对象创建的开始时间和执行一系列转换(包括 keyBy 和一些计算)后的结束时间来计算处理时间。

在大多数情况下,记录的处理时间在 0-1 毫秒之间。然而,我注意到一些结果显示处理时间异常长,超过 10 毫秒。尽管有以下一致的设置,但这种行为似乎是间歇性的并且在运行之间有所不同:

  • Flink集群采用单机模式部署。
  • 我在每次运行之前都会重新启动集群,以确保环境一致。
  • 所有运行都使用相同的 JAR 文件。

什么可能导致处理时间出现间歇性峰值?如何诊断根本问题?还是说这种波动是正常的?

java apache-flink flink-streaming
1个回答
0
投票

这种延迟的变化并不令人惊讶。

首先想到的是垃圾收集。如果您还没有这样做,那么使用最新的 Flink 版本与 Java 17 或 21 以及 ZGC 可能会有所帮助。

还有许多其他配置细节也可能发挥作用。如果不了解更多关于您的应用程序和环境的信息,就很难知道从哪里开始。

© www.soinside.com 2019 - 2024. All rights reserved.