本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
来自 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