我在AWS中运行的数据迁移作业将数据发送到Kinesis Stream和Lambda函数,该函数充当将数据写入DynamoDB的消费者(我将kinesis设置为触发器到lambda)。
当Kinesis Stream开始出现时,我的问题出现了:
写入吞吐量超过(计数/请求) - 平均值 - WriteProvisionedThroughputExceeded
即使lambda使用者永远不会停止读取数据并将数据写入DDB表,但是我看到该图表上有200或300个尖峰计数,但是一旦迁移过程完成(没有更多信息要发送到kinesis)我注意到有一些丢失的记录(lambda消费者永远不会失败),我的问题是:当AWS Kinesis Stream返回" ProvisionedThroughputExceededException"?数据赢了&#39有没有被送到kinesis消费者?答案 0 :(得分:4)
你是对的,Kinesis不处理受限制的电话;您的数据will be dropped by Kinesis:
如果由于请求中涉及的分片上的预配置吞吐量不足而无法处理PutRecord请求,则PutRecord会抛出ProvisionedThroughputExceededException。
为避免这种情况,you should retry your PutRecord(s)使用(最好)指数退避调用:
应使用指数退避策略在短暂延迟后自动重试受限制的请求。