| 配额 |
描述 |
| 批处理消息 ID |
批处理消息 ID 最多可包含 80 个字符。接受以下字符:字母数字字符、连字符 (-) 和下划线 (_)。 |
| 消息属性 |
一条消息可以包含最多 10 个元数据属性。 |
| 消息批 |
一个消息批请求中最多可包含 10 条消息。有关更多信息,请参阅 配置 AmazonSQSBufferedAsyncClient 部分中的 Amazon SQS 批处理操作。
|
| 消息内容 |
消息可以仅包含 XML、JSON 和非格式化的文本。允许以下 Unicode 字符:#x9 | #xA | #xD | #x20 至 #xD7FF | #xE000 至 #xFFFD | #x10000 至 #x10FFFF
此列表中未包含的任何字符将被拒绝。有关更多信息,请参阅字符的 W3C 规范。
|
| 消息组 ID |
MessageGroupId 是 FIFO 队列所必需的。如果您在向 FIFO 队列发送消息时未提供 MessageGroupId,操作将失败。在标准队列中,使用 MessageGroupId 启用公平队列。我们建议您在使用公平队列时在所有消息中添加 MessageGroupId。
MessageGroupId 的长度为 128 个字符。有效值:字母数字字符和标点符号 (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)。
|
| 消息保留 |
默认情况下,消息将保留 4 天。最小值为 60 秒(1 分钟)。最大值为 1209600 秒(14 天)。 |
| 消息吞吐量 |
标准队列 标准队列支持每个操作(SendMessage、ReceiveMessage 或 DeleteMessage)每秒几乎无限次的 API 调用。这种高吞吐量使其非常适合需要快速处理大量消息的应用场景,例如实时数据流或大型应用程序。虽然标准队列会根据需求自动扩展,但您必须监控使用模式以确保实现最佳性能,特别是在工作负载较高的区域。 |
|
FIFO 队列
-
对于每个 API 操作(SendMessage、ReceiveMessage 和 DeleteMessage),FIFO 队列中每个分区的事务处理速率限制为每秒 300 次。这一限制特别适用于非高吞吐量模式。通过切换到高吞吐量模式,您可以超过该默认限制。要启用高吞吐量模式,请参阅为 Amazon SQS 中的 FIFO 队列启用高吞吐量。
-
如果您使用批处理,非高吞吐量 FIFO 队列支持每个 API 操作(SendMessage、ReceiveMessage 和 DeleteMessage)每秒最多 3000 条消息。每秒 3000 个事务代表 300 次 API 调用,每次调用带有包含 10 条消息的一个批处理。
FIFO 队列的高吞吐量
Amazon SQS FIFO 限制基于 API 请求的数量,而不是消息数量限制。在高吞吐量模式下,API 请求的限制如下:
交易吞吐量限制(非批量 API 调用)
这些限制定义了每个 API 操作(例如 SendMessage、ReceiveMessage 或 DeleteMessage)可以独立执行的频率,从而确保在允许的每秒事务数(TPS)范围内实现高效的系统性能。
以下限制基于非批量 API 调用:
-
美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)和欧洲地区(爱尔兰):每秒最多 7 万个事务。
-
美国东部(俄亥俄州)和欧洲地区(法兰克福):每秒最多 1.9 万个事务。
-
亚太地区(孟买)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京):每秒最多 9000 个事务。
-
欧洲地区(伦敦)和南美洲(圣保罗):每秒最多 4500 个事务。
-
所有其他 Amazon Web Services 区域:默认吞吐量为每秒 2400 个事务。
通过批处理最大限度地提高吞吐量
在一次 API 调用中处理多条消息,从而显著提高效率。您可以通过批处理在一次 API 请求中发送、接收或删除最多 10 条消息,而无需单独处理每条消息。这减少了 API 调用的总数,让您能够在不超出区域的每秒事务数(TPS)限制的情况下每秒处理更多消息,从而最大限度地提高吞吐量和系统性能。有关更多信息,请参阅 利用水平扩缩和操作批处理,借助 Amazon SQS 来提高吞吐量。
以下限制基于批量 API 调用:
-
美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)和欧洲地区(爱尔兰):每秒最多 70 万条消息,是非批量限制(每秒 7 万个事务)的 10 倍。
-
美国东部(俄亥俄州)和欧洲地区(法兰克福):每秒最多 19 万条消息。
-
亚太地区(孟买)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京):每秒最多 9 万条消息。
-
欧洲地区(伦敦)和南美洲(圣保罗):每秒最多 4.5 万条消息。
-
所有其他 Amazon Web Services 区域:每秒最多 2.4 万条消息。
利用批处理之外的其他方式优化吞吐量
虽然批处理可以大大提高吞吐量,但您还需要考虑使用其他策略来优化 FIFO 性能:
-
将消息分配到多个消息组 ID 中:由于同一组中的消息是按顺序处理的,因此将工作负载分配到多个消息组可以实现更有效的并行处理和更高的整体吞吐量。有关更多信息,请参阅 SQS FIFO 队列高吞吐量的分区和数据分布。
-
高效使用 API 调用:最大限度地减少不必要的 API 调用,例如频繁更改可见性或重复删除消息,以便优化可用 TPS 的使用并提高效率。
-
使用长轮询接收:通过在接收请求中设置 WaitTimeSeconds 来使用长轮询,减少没有可用消息时的空响应,从而减少不必要的 API 调用并更好地利用 TPS 配额。
-
请求增加吞吐量:如果您的应用程序需要的吞吐量高于默认限制,请使用服务配额控制台请求增加吞吐量。对于高需求的工作负载或默认限制较低的区域,有必要请求增加吞吐量。要启用高吞吐量模式,请参阅为 Amazon SQS 中的 FIFO 队列启用高吞吐量。
|
| 消息定时器 |
消息的默认(最小)延迟为 0 秒。最大值为 15 分钟。 |
| 消息大小 |
最小消息大小为 1 字节(1 个字符)。最大为 1048576 字节(1 MiB)。
要发送大于 1 MiB 的消息,您可以使用适用于 Java 的 Amazon SQS 扩展型客户端库和适用于 Python 的 Amazon SQS 扩展型客户端库。此库允许您发送包含对 Amazon S3 中消息负载的引用的 Amazon SQS 消息。最大负载大小为 2 GB。
|
| 消息可见性超时 |
消息的默认可见性超时为 30 秒。最短时间为 0 秒。最长时间为 12 小时。 |
| 策略信息 |
最大配额为 8192 个字节、20 个语句、50 个主体或 10 个条件。有关更多信息,请参阅 Amazon SQS 策略配额。 |