AWS Kinesis Stream返回" ProvisionedThroughputExceededException"?时数据丢失

时间:2017-06-15 23:38:41

标签: amazon-web-services aws-lambda amazon-kinesis

我在AWS中运行的数据迁移作业将数据发送到Kinesis Stream和Lambda函数,该函数充当将数据写入DynamoDB的消费者(我将kinesis设置为触发器到lambda)。

当Kinesis Stream开始出现时,我的问题出现了:

写入吞吐量超过(计数/请求) - 平均值 - WriteProvisionedThroughputExceeded

即使lambda使用者永远不会停止读取数据并将数据写入DDB表,但是我看到该图表上有200或300个尖峰计数,但是一旦迁移过程完成(没有更多信息要发送到kinesis)我注意到有一些丢失的记录(lambda消费者永远不会失败),我的问题是:当AWS Kinesis Stream返回" ProvisionedThroughputExceededException"?数据赢了&#39有没有被送到kinesis消费者?

1 个答案:

答案 0 :(得分:4)

你是对的,Kinesis不处理受限制的电话;您的数据will be dropped by Kinesis

  

如果由于请求中涉及的分片上的预配置吞吐量不足而无法处理PutRecord请求,则PutRecord会抛出ProvisionedThroughputExceededException。

为避免这种情况,you should retry your PutRecord(s)使用(最好)指数退避调用:

  

应使用指数退避策略在短暂延迟后自动重试受限制的请求。