来自 Kinesis 数据流的上游或源限制 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

来自 Kinesis 数据流的上游或源限制

症状:应用程序正在遇到LimitExceededExceptions来自他们的上游源 Kinesis 数据流。

潜在原因:Apache Flink 库 Kinesis 连接器的默认设置被设置为从 Kinesis 数据流源读取,默认设置非常激进,每个获取的最大记录数GetRecords调用。默认情况下,Apache Flink 配置为每个获取 10,000 条记录 GetRecords 调用(默认情况下此调用每 200 毫秒一次),尽管每个分片的限制只有 1,000 条记录。

当尝试从 Kinesis 数据流中消耗时,这种默认行为可能会导致限制,这将影响应用程序的性能和稳定性。

这可以通过检查 CloudWatch ReadProvisionedThroughputExceeded指标,并查看此指标大于零的长期或持续时间。

客户还可以在中看到这个 CloudWatch 通过看到继续了解他们的 Kinesis Analytics Flink 应用程序LimitExceededException错误消息。

解决方法:客户可以执行以下两项操作之一来解决此情况:

  • 降低每个获取的记录数的默认限制 GetRecords 呼叫

  • 客户可以在其 Kinesis Analytics Flink 应用程序中启用自适应读取。有关自适应读取功能的更多信息,请参阅SHARD_USE_ADAPTIVE_READ