指标GetRecord.success
在某段时间内显示零值。这是否意味着某些记录不是从Kinesis读取的? ReadProvisionedThroughputExceeded
值为零。
答案 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