- 首页›
- 产品›
- Amazon SQS›
- Amazon SQS 功能
Amazon SQS 功能
队列类型
全部打开Amazon SQS 针对不同的应用程序要求提供两种队列类型:
标准队列
无限吞吐量:标准队列对每个 API 操作的每秒事务数(TPS)几乎没有限制。
至少一次交付:一条消息至少交付一次,但偶尔会交付消息的多个副本。
最优排序:有时,消息的交付顺序可能与发送顺序不同。
您可以在许多情况下使用标准消息队列,只要您的应用程序可以处理多次到达且无序的消息,例如:
FIFO 队列
高吞吐量:默认情况下,FIFO 队列支持每秒处理多达 3000 条批处理消息,或者 300 条未进行批处理的消息(每秒 300 次发送、接收或删除操作)。如果您需要更高的吞吐量,可以在 Amazon SQS 控制台上为 FIFO 启用高吞吐量模式,未启用批处理时,该模式支持每秒处理多达 70000 条消息;若启用批处理,吞吐量还能进一步提升。 有关每个区域的 FIFO 高吞吐量模式配额的详细明细,请参阅亚马逊云科技文档。
“正好一次”处理:消息只交付一次,在使用者处理并删除它之前一直可用。队列中不会引入重复项。
先进先出交付:消息的发送和接收顺序严格保持一致(即先进先出)。
FIFO 队列用于在操作和事件的顺序至关重要或重复内容不可接受时增强应用程序之间的消息收发,例如:
功能
全部打开无限的队列和消息:在任何区域中创建无限数量的 Amazon SQS 队列并附带无限数量的消息
有效负载大小:消息有效负载最多可包含 256KB 任何格式的文本。有效负载中每 64KB 的“数据块”按 1 次请求计费。例如,对 256KB 有效负载的单次 API 调用将按四次请求计费。
批处理:批量发送、接收或删除消息,最多 10 条消息或 256KB。批处理的成本与单条消息相同,这意味着 SQS 对于使用批处理的客户而言更具成本效益。
- 长轮询:减少无关轮询,在尽快接收新消息的同时最大限度地降低成本。当队列为空时,长轮询请求在下一条消息到达前最多等待 20 秒钟。长轮询请求的成本与常规请求的成本相同。
- 公平队列:减轻多租户队列中噪声邻居的影响。当某个租户发送大量消息或需要更长的处理时间时,公平队列有助于在所有租户之间保持一致的发送和接收消息时间。通过在消息中添加消息组 ID 来启用公平队列,无需对使用者进行任何更改。
队列中的消息最多可保留 14 天。
同时发送和读取消息。
消息锁定:收到消息后,消息在处理过程中变为“锁定”状态。这样可以防止其他计算机同时处理消息。如果消息处理失败,锁定状态将过期,消息将再次可用。
队列共享:匿名或与特定的亚马逊云科技 WS 账户安全共享 Amazon SQS 队列。队列共享也可能受到 IP 地址和时间限制。
服务器端加密(SSE):使用 AmazonWS Key Management Service(AmazonWS KMS)中托管的密钥保护 Amazon SQS 队列中的消息内容。一旦 Amazon SQS 收到消息,SSE 就会对其进行加密。这些消息以加密形式存储,Amazon SQS 仅在这些消息发送给授权使用者时才对其进行解密。
死信队列 (DLQ):使用死信队列处理使用者未成功处理的消息。当消息超过最大接收计数时,该消息将被移动到与原始队列关联的 DLQ 中。为 DLQ 设置单独的使用者进程,这有助于分析和理解消息卡住的原因。DLQ 的类型必须与源队列的类型相同(标准队列或 FIFO)。
将 Amazon SQS 与其他亚马逊云科技基础设施 Web 服务结合使用
全部打开Amazon SQS 消息队列可以与 Amazon Redshift、Amazon DynamoDB、Amazon Relational Database Service(RDS)、Amazon Elastic Compute Cloud(EC2)、Amazon Elastic Container Service(ECS)、AmazonWS Lambda 和 Amazon S3 等其他亚马逊云科技服务一起使用,使分布式应用程序更具可扩展性和可靠性。以下是一些常见的设计模式:
预期用途和限制
全部打开使用本服务需遵循亚马逊云科技客户协议。