限额和限制 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

限额和限制

下表显示了 Amazon Kinesis Data Streams 的流和分片限额及限制。

配额 按需模式 预置模式

数据流数

您的 Amazon 账户内的直播数量没有上限。默认情况下,您可以使用按需容量模式创建最多 50 个数据流。如需增加此限额,请提交支持工单

账户中采用预置模式的流数量没有限额上限。

分片数量

并无上限。分片数量取决于摄取的数据量和所需的吞吐量级别。Kinesis Data Streams 会根据数据量和流量的变化自动扩展分片数量。

并无上限。以下各项的默认分片配额为每个 20,000 Amazon Web Services 账户 个分片: Amazon Web Services 区域

  • 美国东部(弗吉尼亚北部)

  • 美国西部(俄勒冈)

  • 欧洲地区(爱尔兰)

其余所有区域每个 Amazon Web Services 账户账户的默认分片限额为 1000 或 6000 个分片。您可以通过 Service Quotas 控制台查看账户的分片配额和使用率,网址为https://console.aws.amazon.com/servicequotas/

要申请增加分片配额,请使用 Service Quotas 控制台或 Amazon CLI。有关更多信息,请参阅请求提高限额

数据流吞吐量

默认情况下,使用按需容量模式创建的新数据流的写入吞吐量为 4 MB/s ,读取吞吐 MB/s 量为 8。在美国东部(弗吉尼亚北部)美国西部(俄勒冈)欧洲(爱尔兰) Amazon Web Services 区域,按需容量模式的数据流最多可扩展到 10% GB/s 的写入吞吐量和 20% 的 GB/s 读取吞吐量。对于其他区域,按需容量模式的数据流最多可扩展到 200 MB/s 的写入吞吐量和 400 的 MB/s 读取吞吐量。如果您需要将这些区域的 GB/s 写入容量增加到 10 和 20 个 GB/s 读取容量,请提交支持请求

并无上限。最大吞吐量取决于为流预置的分片数量。每个分片最多可支持 1 MB/sec 或 1,000 个 records/sec 写入吞吐量或最多 2 MB/sec 或 2,000 个 records/sec 读取吞吐量。如果您需要更多载入容量,则可以使用 Amazon Web Services 管理控制台 或 API 轻松扩大流中的分片数量。UpdateShardCount

数据有效负载大小

使用 base64-encoding 之前记录的数据有效负载的最大大小为 10 MiB。Kinesis 旨在使用突增容量处理间歇性的大型记录(大小为 1-10MiB)。

GetRecords 事务大小

GetRecords每次调用可以从单个分片中检索多达 10 MB 的数据,每次调用最多可检索 10,000 条记录。对 GetRecords 的每次调用都算作一个读取事务。每个分片每秒可支持多达 5 个读取事务。每个读取事务可提供多达 10000 个记录,每个事务的配额上限为 10 MB。

每个分片的数据读取速率

每个分片最多可支持每秒 2 MB 的最大总数据读取速率。GetRecords如果对 GetRecords 的调用返回 10 MB,则在接下来的 5 秒内发出的后续调用将会引发异常。

每个数据流的注册消费端数量

使用 Kinesis 按需优势模式,您最多可以创建 50 个注册用户(增强型扇出)。使用 Kinesis 按需标准模式和 Kinesis 预配置模式,您可以为每个数据流创建最多 20 个注册使用者(增强扇出限制)。

在预置模式和按需模式之间切换

对于 Amazon 账户中的每个数据流,您可以在 24 小时内两次在按需和预配置容量模式之间切换。 

API 限制

与大多数操作一样 Amazon APIs,Kinesis Data Streams API 操作受到速率限制。下面是每个 Amazon 账户在每个区域的限制。有关 Kinesis Data APIs Streams 的更多信息,请参阅亚马逊 Kinesis API 参考。

KDS 控制层面 API 限制

下一节介绍了 KDS 控制平面的 APIs限制。KDS 控制平面APIs 允许您创建和管理数据流。这些是每个 Amazon 账户在每个区域的限制。

控制层面 API 限制
API API 调用限制 每个账户/流  描述
AddTagsToStream 每秒 5 个事务 (TPS) 每个账户 每个数据流 50 个标签
CreateStream 5 TPS 每个账户

在账户中可以拥有的流数量没有配额上限。当您尝试执行以下操作之一时,如果发出 CreateStream 请求,则会收到 LimitExceededException

  • 在任何时间点,CREATING 状态中有五个以上的流。

  • 创建的分片数量超过了为您的账户授权的数量。

DecreaseStreamRetentionPeriod 5 TPS 每个流 数据流的保留期的最小值为 24 小时。
DeleteResourcePolicy 5 TPS 每个账户 如需增加此限额,请提交支持工单
DeleteStream 5 TPS 每个账户
DeregisterStreamConsumer 5 TPS 每个流
DescribeAccountSettings 5 TPS 每个 账户
DescribeLimits 1 TPS 每个账户
DescribeStream 10 TPS 每个账户
DescribeStreamConsumer 20 TPS 每个流
DescribeStreamSummary 20 TPS 每个账户
DisableEnhancedMonitoring 5 TPS 每个流
EnableEnhancedMonitoring 5 TPS 每个流
GetResourcePolicy 5 TPS 每个账户 如需增加此限额,请提交支持工单
IncreaseStreamRetentionPeriod 5 TPS 每个流 流保留期的最大值为 8760 小时(365 天)。
ListShards 1000 TPS 每个流
ListStreamConsumers 5 TPS 每个流
ListStreams 5 TPS 每个账户
ListTagsForStream 5 TPS 每个流
MergeShards 5 TPS 每个流 仅适用于预置模式。
PutResourcePolicy 5 TPS 每个账户 如需增加此限额,请提交支持工单
RegisterStreamConsumer 5 TPS 每个流 您最多可以为每个数据流注册 20 个消费端。每次只能在一个数据流中注册给定的消费端。只能同时创建 5 个消费端。换言之,同时处于 CREATING 状态的消费端不能超过 5 个。
RemoveTagsFromStream 5 TPS 每个流
SplitShard 5 TPS 每个流 仅适用于预置模式
StartStreamEncryption 每个流 您可以在 24 小时内成功应用新的 Amazon KMS 密钥进行服务器端加密 25 次。
StopStreamEncryption 每个流 在连续 24 小时期间,您可以成功禁用服务器端加密 25 次。
UpdateShardCount 每个流 仅适用于预置模式。分片数量的默认限制为 10000 个。此 API 还存在其他限制。有关更多信息,请参阅 UpdateShardCount
UpdateStreamMode 每个流

对于 Amazon 账户中的每个数据流,您可以在 24 小时内两次在按需和预配置容量模式之间切换。

UpdateStreamWarmThroughput 5 TPS 每个 账户 相应账户和区域可配置的最大热吞吐量为按需模式的数据流吞吐量限制。
UpdateAccountSettings 5 TPS 每个 账户 启用或禁用按需优势模式等账户设置。

数据层面 API 限制

下一节介绍了 KDS 数据平面的 APIs限制。KDS 数据平面 APIs 允许您使用数据流实时收集和处理数据记录。下面是您的数据流中的每分片限制。

数据层面 API 限制
API API 调用限制 负载限制 其他详细信息
GetRecords 5 TPS 每次调用可返回的最大记录数为 10000 个。GetRecords 可返回的数据的最大大小为 10MB。 如果某个调用返回此数据量,则在接下来的 5 秒内执行后续调用时,会引发 ProvisionedThroughputExceededException。如果流上的预置吞吐量不足,则在接下来的 1 秒内进行后续调用时,会引发 ProvisionedThroughputExceededException
GetShardIterator 5 TPS 分片迭代器在其返回给请求者的 5 分钟后过期。如果 GetShardIterator 请求过于频繁,您会收到 ProvisionedThroughputExceededException。
PutRecord 1000 TPS 每个分片最多可以支持每秒写入 1000 条记录,最大数据写入总数为每秒 10 MiB。 Kinesis 旨在使用突增容量处理间歇性的大型记录(大小为 1-10MiB)。
PutRecords 每个 PutRecords 请求最多可支持 500 条记录。请求中的每一个记录最大可以为 1 MiB,整个请求的上限为 10 MiB,包括分区键。每个分片最多可以支持每秒写入 1000 条记录,最大数据写入总数为每秒 1 MB。 Kinesis 旨在使用突增容量处理间歇性的大型记录(大小为 1-10MiB)。
SubscribeToShard 每个分片的每个注册用户 SubscribeToShard 每秒可以拨打一个电话。 如果您 SubscribeToShard 再次使用相同的 consumerArn 拨打电话,ShardId 并且在成功通话后的 5 秒钟内,您将获得。ResourceInUseException

提升配额

如果配额是可调整的,则可以使用服务配额来请求增加配额。有些请求会自动得到解决,而另一些则提交给 Supp Amazon ort。您可以跟踪提交给 Support 的配额增加请求的 Amazon 状态。提高服务配额的请求没有得到优先支持。如果您有紧急请求,请联系 Su Amazon pport。有关更多信息,请参阅什么是服务配额?

要请求增加服务配额,请按照请求增加配额中概述的步骤操作。