Kinesis 分片迭代器解释

Kinesis shard iterator explanation

我正在尝试从 Kinesis 碎片获取记录。我循环获取分片迭代器,然后获取迭代器中的记录。我似乎得到了无穷无尽的迭代器,none 包含任何记录。

我的问题涉及迭代器的生命周期。鉴于 Kinesis 仅将数据保存 24 小时,而迭代器应该有 5 分钟的生命周期,我不应该在任何时间点只看到最多 288 个迭代器吗?

没有固定数量的分片迭代器,因为分片迭代器只是独特的位置 在给定的 碎片 中,给定的 记录 .

分片迭代器只是分片中某点给定记录的序列号。

根据文档here

A sequence number is the identifier associated with every record ingested in the stream, and is assigned when a record is put into the stream. Each stream has one or more shards

A shard iterator specifies the shard position from which to start reading data records sequentially.

所以从上面我相信分片迭代器实际上是一个基于时间戳的任意 ID。

The position is specified using the sequence number of a data record in a shard.

所以迭代器的数量实际上与给定分片中的记录数量更密切相关。