亚马逊 SQS 中的 FIFO 队列和消息标识符 - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊 SQS 中的 FIFO 队列和消息标识符

本节介绍 FIFO 队列的标识符。这些标识符可帮助您查找并操作特定队列和消息。

亚马逊 SQS 中先进先出队列的标识符

有关以下标识符的更多信息,请参阅 Amazon Simple Queue Service API 参考

队列名称和 URL

在创建新的队列时,您必须为 Amazon 账户和区域指定唯一的队列名称。Amazon SQS 会为您创建的每个队列分配一个名为队列 URL 的标识符,其中包含队列名称和其他 Amazon SQS 组件。每当您要对队列执行操作时,都需要提供其队列 URL。

FIFO 队列名称必须以 .fifo 后缀结尾。后缀计入 80 个字符的队列名称配额。要确定队列是否为 FIFO,您可以检查队列名称是否以该后缀结尾。

以下是名为 AIFO 队列的队列 URL,该队列由MyQueue拥有 AWS 账号123456789012的用户拥有。

https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue.fifo

您可以通过列出队列并解析账号后的字符串,以编程方式检索队列的 URL。有关更多信息,请参阅 ListQueues

消息 ID

每条消息都会收到一个系统分配的消息 ID,该 ID 由 Amazon SQS 在 SendMessage 响应中返回给您。此标识符用于识别消息。消息 ID 的最大长度为 100 个字符。

接收句柄

每当收到来自队列的消息时,您都会收到该消息的接收句柄。此句柄与接收消息的操作相关联,与消息本身无关。要删除消息或更改消息可见性,您必须提供接收句柄(而不是消息 ID)。因此,您必须始终先接收消息,然后才能删除它(您不能将消息放入队列中,然后重新调用它)。接收句柄的最大长度为 1024 个字符。

重要

如果多次接收某条消息,则每次接收该消息时,您都会获得不同的接收句柄。在请求删除该消息时,您必须提供最近收到的接收句柄(否则,可能无法删除该消息)。

以下是接收句柄的示例(跨三条线分解)。

MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+Cw Lj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QE auMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0=

Amazon SQS FIFO 队列的其他标识符

有关以下标识符的更多信息,请参阅在 Amazon SQS 中精确处理一次Amazon Simple Queue Service API 参考

消息重复数据删除 ID

用于对已发送消息进行重复数据删除的令牌。如果成功发送了带有特定消息重复数据删除 ID 的消息,则所有使用相同消息重复数据删除 ID 发送的消息都将被成功接受,但不会在 5 分钟的重复数据删除间隔内传输。

消息组 ID

指定消息属于特定消息组的标签。属于同一消息组的消息按相对于消息组的严格顺序逐个处理(但是,属于不同消息组的消息可能会不按顺序处理)。

序列号

Amazon SQS 为每条消息分配的大型非连续数字。