在 Amazon SQS 中从标准队列移动到 FIFO 队列 - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Amazon SQS 中从标准队列移动到 FIFO 队列

如果您有使用标准队列的现有应用程序并想要利用 FIFO 队列的排序或仅处理一次特征,则需要正确地配置队列和应用程序。

注意

您无法将现有标准队列转换为 FIFO 队列。要实现转移,您必须为应用程序创建新的 FIFO 队列,或者删除现有标准队列并重新将其创建为 FIFO 队列。

使用以下核对清单确保您的应用程序能够与 FIFO 队列一起正确地工作:

  • 使用推荐的 FIFO 高吞吐量模式来提高吞吐量。要详细了解消息发送配额,请参阅亚马逊 SQS 消息配额

  • FIFO 队列不支持每消息延迟,仅支持每队列延迟。如果您的应用程序在每条消息上设置相同的 DelaySeconds 参数值,您必须将应用程序修改为删除每消息延迟并改为在整个队列上设置 DelaySeconds

  • 消息组是一项独特的 FIFO 特征,它使客户能够并行处理消息,同时保持各自的顺序。客户通过指定消息组 ID 将消息整理到消息组中。消息组通常基于给定工作负载的业务维度。为了更好地扩展 FIFO 队列,请为消息 ID 使用更精细的业务维度。您向其分发消息的消息组 ID 越多,FIFO 可供使用的消息数量就越多。

  • 在将消息发送到 FIFO 队列之前,请确认以下内容:

    • 如果您的应用程序可发送具有相同的消息正文的消息,您可以将应用程序修改为针对每条已发送消息提供唯一的消息重复数据删除 ID。

    • 如果您的应用程序发送具有独特的消息正文的消息,您可以启用基于内容的重复数据删除。

  • 您不必对使用者进行任何代码更改。但是,如果处理消息需要较长时间且您的可见性超时已设置为一个较高值,请考虑向每个 ReceiveMessage 操作添加接收请求尝试 ID。这允许您在网络发生故障时重试接收尝试,并防止队列由于接收尝试失败而导致的暂停。

有关更多信息,请参阅 Amazon Simple Queue Service API 参考