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

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

FIFOAmazon 中的队列和消息标识符 SQS

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

Amazon 中FIFO队列的标识符 SQS

有关以下标识符的更多信息,请参阅《Amazon 简单队列服务API参考》。

队列名称和 URL

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

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

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

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

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

消息 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 简单队列服务API参考》。

消息重复数据删除 ID

Amazon SQS FIFO 队列中使用的一种令牌,用于唯一识别消息并防止重复。如果在 5 分钟的重复数据删除间隔内发送了多条具有相同重复数据删除 ID 的消息,则这些消息将被视为重复消息,并且系统只传递其中一条。如果您未指定重复数据删除 ID 并且启用了基于内容的重复数据删除,Amazon 会通过对邮件正文进行哈希处理来SQS生成重复数据删除 ID。这一机制可以在指定时间范围内消除重复消息,从而确保仅传递一次。

消息组 ID

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

序列号

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