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

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

从标准队列移至 FIFO 队列

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

注意

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

要确保您的应用程序能够正确地与 FIFO 队列配合使用,请使用以下核对表:

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

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

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

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

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

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

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

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