Flink:从 Kinesis 读取导致 ReadProvisionedThroughputExceeded
Flink: Reading from Kinesis causes ReadProvisionedThroughputExceeded
我有一个带有 Kinesis 源的 Flink 应用程序。 运行 Flink 应用程序时,我看到来自 AWS 的很多 ReadProvisionedThroughputExceeded 错误。我已尝试使用不同的设置更新消费者配置以减少获取记录调用的次数并增加调用之间的时间,但这似乎没有帮助:
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_MAX, "500")
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_INTERVAL_MILLIS, "30000")
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_BACKOFF_BASE, "3000")
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_BACKOFF_MAX, "10000")
还有其他我应该调整的设置吗?谢谢!
尝试进行以下检查:
- 检查 Kinesis 监视器以获取哪个指标超出限制:记录数或每次轮询的所有记录的字节总和。
- 有竞争力的消费者。是否有任何其他消费者从同一个分片读取数据?如果未启用增强型扇出,则它们将共享相同的吞吐量。
启用增强扇出(https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/datastream/kinesis/#using-enhanced-fan-out)是一个潜在的解决方案。
事实证明这是一个错误:https://issues.apache.org/jira/browse/FLINK-21661 在我使用的版本中 - Flink 1.12
我有一个带有 Kinesis 源的 Flink 应用程序。 运行 Flink 应用程序时,我看到来自 AWS 的很多 ReadProvisionedThroughputExceeded 错误。我已尝试使用不同的设置更新消费者配置以减少获取记录调用的次数并增加调用之间的时间,但这似乎没有帮助:
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_MAX, "500")
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_INTERVAL_MILLIS, "30000")
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_BACKOFF_BASE, "3000")
consumerConfig.put(ConsumerConfigConstants.SHARD_GETRECORDS_BACKOFF_MAX, "10000")
还有其他我应该调整的设置吗?谢谢!
尝试进行以下检查:
- 检查 Kinesis 监视器以获取哪个指标超出限制:记录数或每次轮询的所有记录的字节总和。
- 有竞争力的消费者。是否有任何其他消费者从同一个分片读取数据?如果未启用增强型扇出,则它们将共享相同的吞吐量。
启用增强扇出(https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/datastream/kinesis/#using-enhanced-fan-out)是一个潜在的解决方案。
事实证明这是一个错误:https://issues.apache.org/jira/browse/FLINK-21661 在我使用的版本中 - Flink 1.12