【发布时间】:2017-01-26 06:51:20
【问题描述】:
指标GetRecord.success 在某个时间段内显示为零值。这是否意味着某些记录不是从 Kinesis 读取的?不过ReadProvisionedThroughputExceeded 的值为零。
【问题讨论】:
标签: amazon-kinesis
指标GetRecord.success 在某个时间段内显示为零值。这是否意味着某些记录不是从 Kinesis 读取的?不过ReadProvisionedThroughputExceeded 的值为零。
【问题讨论】:
标签: amazon-kinesis
我猜这是因为 GetRecords 可以返回一个空的 Record 元素,即使运动流中有数据。
GetRecords 是一种非阻塞操作,旨在用于“拉”模型,例如消费应用程序在循环内调用 GetRecords(在为您完成这项工作的 KCL 中不需要这样做)。我使用了“拉”这个表达方式,但实际上消费者永远不会删除记录。调用 getRecords 只有增加消费者偏移量的效果。
使 GetRecords 非阻塞是一种架构选择,可在检索记录时避免无限制的查找时间(延迟)。
实际上,即使流中有数据,调用 GetRecors 也可以返回一个空的 Record 元素。这种情况发生在两种情况下: -当前分片中没有更多数据,或者 - ShardIterator 指向的分片部分附近没有数据。
欲了解更多信息,您可以查看此链接:http://docs.aws.amazon.com/streams/latest/dev/troubleshooting-consumers.html
【讨论】: