Amazon SQS Standard queues - Amazon Simple Queue Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Amazon SQS Standard queues

Amazon SQS 优惠 standard 默认队列类型。 标准队列的每个 API 操作(SendMessageReceiveMessageDeleteMessage)每秒支持接近无限的 API 调用。标准队列支持至少一次消息传递。但是,偶尔(由于具有几乎无限制吞吐量的分布式体系结构),可以从订单中交付多个消息副本。标准队列会尽最大努力进行排序,保证了消息大致按其发送的顺序进行传递。

有关如何使用AmazonSQS控制台创建和配置标准队列的信息,请参阅 Creating an Amazon SQS queue (console). 有关Java示例,请参阅 Amazon SQS Java SDK examples.

只要您的应用程序能够处理超过一次性到达的消息,就可以在许多情境下使用标准消息队列,例如:

  • Decouple live user requests from intensive background work – Let users upload media while resizing or encoding it.

  • Allocate tasks to multiple worker nodes – Process a high number of credit card validation requests.

  • Batch messages for future processing – Schedule multiple entries to be added to a database.

有关标准队列的配额,请参阅 与队列相关的配额.

有关使用标准队列的最佳做法,请参阅 Recommendations for Amazon SQS standard and FIFO queues.

Message ordering

标准队列最大程度地保留消息顺序,但不超过一个消息副本可能会从订单中交付。如果您的系统要求保留订单,建议使用 FIFO (先进先出) queue 或在每个消息中添加测序信息,以便在收到消息时重新排序。

At-least-once delivery

Amazon SQS 会在多台服务器上存储消息的副本,以实现冗余和高可用性。在极少数情况下,当您接收或删除消息时,存储消息副本的某台服务器可能不可用。

如果出现这种情况,则该不可用服务器上的消息副本将不会被删除,并且您在接收消息时可能会再次获得该消息副本。设计您的应用程序 idempotent (处理同一消息时不应受到不良影响)。