在 Amazon 中从标准队列转移到FIFO队列 SQS - Amazon Simple Queue Service

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

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

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

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

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

  • 消息组 ID:为每条发送的消息提供一个消息组 ID。该 ID 支持并行处理消息,同时保持各组内消息的顺序。使用精细的业务维度作为消息组 ID,以便更好地随FIFO队列进行扩展。IDs您向其分发消息的消息组越多,可供使用的消息数量就越多。

  • 高吞吐量模式:对FIFO队列使用推荐的高吞吐量模式以提高吞吐量。有关消息配额的更多信息,请参阅Amazon SQS 消息配额

移至FIFO队列的清单

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

  1. 配置延迟设置

    • 修改应用程序以取消每消息延迟。

    • 在整个队列上设置 DelaySeconds 参数。

  2. 设置消息组 IDs

    • 通过基于业务维度指定消息组 ID,将消息整理到消息组中。

    • 使用更精细的业务维度来提高可扩展性。

  3. 处理消息重复数据删除

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

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

  4. 配置使用者

    • 通常,使用者不需要更改代码。

    • 如果处理消息需要较长时间并且您设置了较高的可见性超时时间,请考虑向每个 ReceiveMessage 操作添加接收请求尝试 ID。这样做有助于在网络发生故障时重试接收尝试,并防止由于接收尝试失败而导致队列暂停。

通过执行这些步骤,您可以确保您的应用程序在队列中正常运行,充分利用FIFO队列的排序和精确一次的处理功能。有关更多详细信息,请参阅《Amazon 简单队列服务API参考》。