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

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

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

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中使用新版本的的说明: