dev*_*ser 1 amazon-web-services amazon-kinesis aws-lambda
我有一个在 AWS 中运行的数据迁移作业,它将数据发送到 Kinesis Stream 和一个 Lambda 函数,该函数充当将数据写入 DynamoDB 的使用者(我将 kinesis 设置为 lambda的触发器)。
当 Kinesis Stream 开始命中时,我的问题就出现了:
超出写入吞吐量(计数/请求)- 平均值 - WriteProvisionedThroughputExceeded
我在该图表上看到 200 或 300 次计数,即使 lambda 使用者从未停止读取数据并将数据写入 DDB 表,但是一旦迁移过程完成(没有更多信息要发送到 kinesis)我注意到有一些丢失的记录(lambda 使用者从未失败),我的问题是:当 AWS Kinesis Stream 返回“ProvisionedThroughputExceededException”时,数据是否丢失?那些数据永远不会发送给kinesis消费者?
你是对的,Kinesis 不处理节流调用;您的数据将被 Kinesis 删除:
如果由于请求所涉及的分片上的预置吞吐量不足而无法处理 PutRecord 请求,PutRecord 将抛出 ProvisionedThroughputExceededException。
为避免这种情况,您应该使用(最好)指数退避重试您的 PutRecord(s)调用:
应使用指数退避策略在短暂延迟后自动重试受限制的请求。
| 归档时间: |
|
| 查看次数: |
2048 次 |
| 最近记录: |