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

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

从标准队列移至 FIFO 队列

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

注意

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

要确保您的应用程序能够正确使用 FIFO 队列,请使用以下清单:

  • 如果您使用批处理,则每个 API 方法(SendMessageBatch、、或DeleteMessageBatch),FIFO 队列每秒最多支持 3,000 次调用。ReceiveMessage每秒 3,000 个调用代表 300 个 API 调用,每个调用一批 10 条消息。要申请提高配额,请提交支持请求。在不使用批处理的情况下,FIFO 队列的每个 API 方法(SendMessageReceiveMessageDeleteMessage)每秒最多支持 300 个 API 调用。

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

  • 发送到 FIFO 队列的每条消息都需要一个消息组 ID。如果您不需要多个有序的消息组,请为您的所有消息指定相同的消息组 ID。

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

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

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

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

有关更多信息,请参阅 Amazon Service Que Service Ser vice