Flink 1.15 异步接收器死锁 - Managed Service for Apache Flink

适用于 Apache Flink 的亚马逊托管服务(亚马逊 MSF)以前被称为适用于 Apache Flink 的亚马逊 Kinesis Data Analytics。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Flink 1.15 异步接收器死锁

Apache Flink 实现 AWS AsyncSink 接口的连接器存在一个已知问题。这会影响使用带有以下连接器的 Flink 1.15 的应用程序:

  • 对于 Java 应用程序:

    • KinesisStreamsSink – org.apache.flink:flink-connector-kinesis

    • KinesisStreamsSink – org.apache.flink:flink-connector-aws-kinesis-streams

    • KinesisFirehoseSink – org.apache.flink:flink-connector-aws-kinesis-firehose

    • DynamoDbSink – org.apache.flink:flink-connector-dynamodb

  • Flink SQL/TableAPI/Python 应用程序:

    • kinesis – org.apache.flink:flink-sql-connector-kinesis

    • kinesis – org.apache.flink:flink-sql-connector-aws-kinesis-streams

    • firehose – org.apache.flink:flink-sql-connector-aws-kinesis-firehose

    • dynamodb – org.apache.flink:flink-sql-connector-dynamodb

受影响的应用程序将出现以下症状:

  • Flink 任务处于RUNNING状态,但未处理数据;

  • 没有任务重启;

  • 检查点正在超时。

该问题是由 AWS SDK中的一个错误引起的,该错误导致它在使用异步HTTP客户端时不会向调用者显示某些错误。这会导致接收器无限期地等待 “飞行中请求” 在检查点刷新操作期间完成。

从版本 2.20. 144 开始,此问题已在 AWS SDK 中得到修复。

以下是有关如何更新受影响的连接器以在应用程序中使用新版本的 AWS SDK 的说明: