Flink 1.15 异步接收器死锁 - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

Flink 1.15 异步接收器死锁

Apache Flink 实现 Amazon 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状态,但未处理数据;

  • 没有任务重启;

  • 检查点正在超时。

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

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

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