某些记录的Kinesis读取失败

时间:2016-10-14 07:17:25

标签: amazon-kinesis

指标GetRecord.success在某段时间内显示零值。这是否意味着某些记录不是从Kinesis读取的? ReadProvisionedThroughputExceeded值为零。

1 个答案:

答案 0 :(得分:0)

我想这是因为即使在kinesis流中有数据,GetRecords也可以返回一个空的Record元素。

GetRecords是一种非阻塞操作,旨在用于“拉”模型,例如消费者应用程序在循环中调用GetRecords(这在KCL中不需要为您完成工作)。我使用了表达式“pull”,但实际上记录从未被消费者删除。调用getRecords只会增加消费者的偏移量。

使GetRecords无阻塞是一种架构选择,可以在检索记录时避免无限制的搜索时间(延迟)。

实际上,即使流中有数据,调用GetRecors也可以返回一个空的Record元素。这种情况发生在两种情况: - 分片中当前没有更多数据,或 - ShardIterator指向的碎片部分附近没有数据。

有关详细信息,请查看以下链接:http://docs.aws.amazon.com/streams/latest/dev/troubleshooting-consumers.html