对于 GetShardIterator,每个帐户每个打开的分片每秒 5 个事务的限制是什么意思?

What does a limit of 5 transactions per second per account per open shard for GetShardIterator mean?

在 AWS Kinesis Streams 中,this limit 的确切含义是什么:

GetShardIterator has a limit of 5 transactions per second per account per open shard.

具体来说,什么是 "open shard"?具有尚未过期的分片迭代器的分片?这是为了鼓励使用开放式迭代器并阻止一次为同一个分片打开太多迭代器吗?

或者这是否意味着每秒最多可以将 5 GetRecords 笔交易发送到同一个分片迭代器?

  1. 分片可以解释为一个虚拟队列,它在流中保存数据。流中可以有多个分片,当 1 条记录被推送到流时(通过 PutRecord API 调用),它会根据该记录的分区键放置在一个分片上。

  2. 开放分片是可以接受新记录的分片。如果合并 2 个分片,它们就会关闭。同样,当您拆分分片时,它会关闭。 merge/split 的示例说明:How to decide total number of partition keys in AWS kinesis stream?

  3. 分片迭代器有点不同,它是消费者应用程序中分片的轮询率。大多数时候,您的应用程序不会打扰分片迭代器的工作方式(KCL:amazon-kinesis-client will handle it internally). The "limit of 5 transactions per second per account per open shard" means the interval of polling to a shard is limited, that is explained here: