本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
无限制状态增长
如果您的应用程序没有正确处置过时的状态信息,它将持续积累,并导致应用程序性能或稳定性问题。本节介绍了此情况的症状和故障排除步骤。
征兆
这种情况可能出现以下症状:
这些区域有:
lastCheckpointDuration指标正在逐渐增加或激增。这些区域有:
lastCheckpointSize指标正在逐渐增加或激增。
原因和解决方案
以下情况可能会导致您的应用程序累积州数据:
您的应用程序保留状态数据的时间超过了所需的时间。
您的应用程序使用持续时间太长的窗口查询。
你没有为州数据设置 TTL。有关更多信息,请参阅 。状态生存时间 (TTL)
中的Apache Flink . 您运行的应用程序依赖于 Apache Beam 2.25.0 版本。您可以通过以下方式选择退出新版本的读转换扩展 Beam 应用程序属性有关键的实验和价值
use_deprecated_read. 有关更多信息,请参阅 。Apache Beam.
有时,应用程序面临不断增长的状态规模增长,从长远来看是不可持续的(毕竟 Flink 应用程序无限期运行)。有时,这可以追溯到存储状态数据的应用程序,而没有正确老化旧信息。但是有时候对 Flink 可以提供的东西有不合理的期望。应用程序可以在跨越数天甚至几周的大时间窗口内使用聚合。除非AggregregatFuncate
此外,在使用流程函数实现自定义运算符时,应用程序需要从业务逻辑不再需要的状态中删除数据。在那种情况下,状态生存时间
出于调试目的,禁用增量检查点以更快地验证检查点大小实际上减小还是稳定(并避免 RockSB 中压缩的影响)是有意义的。但是,这需要向服务团队提供票证。