Amazon Simple Queue Service
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

教程:配置 Amazon SQS 死信队列

死信队列是其他 (源) 队列可将其作为无法成功处理 (使用) 的消息的目标的队列。以下示例演示如何创建队列以及如何为其配置死信队列。有关更多信息,请参阅 使用 Amazon SQS 死信队列

重要

FIFO 队列的死信队列也必须为 FIFO 队列。同样,标准 队列的死信队列也必须为 标准 队列。

AWS 管理控制台

  1. 登录 Amazon SQS 控制台

  2. 选择 Create New Queue。

  3. Create New Queue 页上,确保您位于正确的区域,然后键入 Queue Name

    注意

    FIFO 队列的名称必须以 .fifo 后缀结尾。 在 美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)、美国西部(俄勒冈) 和 欧洲(爱尔兰) 区域都提供 FIFO 队列。

  4. 默认情况下已选择 标准。选择 FIFO

  5. 选择 Configure Queue

  6. 在此示例中,您将为新队列启用重新驱动策略、将 MyDeadLetterQueue.fifo 队列设置为死信队列,并将最大接收数设置为 50

    1. 要配置死信队列,请选择 Use Redrive Policy

    2. 输入您希望源队列向其发送消息的现有死信队列的名称。

    3. 要配置消息在发送到死信队列之前可接收的次数,请将 Maximum Receives 设置为一个介于 1 和 1000 之间的值。

      注意

      Maximum Receives 设置仅应用于单个消息。

    4. 选择 Create Queue

    将创建您的新死信队列,并在队列列表中将其选定。

    注意

    创建队列时,队列可能需要一小段时间在整个 Amazon SQS 中传播。

    您的队列的 Maximum ReceivesDead Letter Queue ARN 将显示在 Redrive Policy 选项卡上。

Java

在您开始处理示例代码之前,请指定 AWS 凭证。有关更多信息,请参阅 AWS SDK for Java Developer Guide 中的设置用于开发的 AWS 凭证和区域

配置死信队列

  1. 复制 标准 队列FIFO 队列的示例程序。

  2. 设置一个字符串,其中包含 JSON 格式的参数和 RedrivePolicy 队列属性的值:

    Copy
    String redrivePolicy = "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}";
  3. 使用 CreateQueueSetQueueAttributesRequest API 操作来设置 RedrivePolicy 队列属性:

    Copy
    SetQueueAttributesRequest queueAttributes = new SetQueueAttributesRequest(); Map<String,String> attributes = new HashMap<String,String>(); attributes.put("RedrivePolicy", redrivePolicy); queueAttributes.setAttributes(attributes); queueAttributes.setQueueUrl(myQueueUrl); sqs.setQueueAttributes(queueAttributes);
  4. 编译并运行程序。

    已配置的死信队列。

示例请求

Copy
http://sqs.us-east-2.amazonaws.com/123456789012/MySourceQueue ?Action=SetQueueAttributes &Attribute.1.Value=%7B%22maxReceiveCount%22%3A%225%22%2C+%22deadLetterTargetArn%22%3A%22arn%3Aaws%3Asqs%3Aus-east-2%3A123456789012%3AMyDeadLetterQueue%22%7D &Version=2012-11-05 &Attribute.1.Name=RedrivePolicy

注意

队列名称和队列 URL 区分大小写。

示例响应

Copy
<SetQueueAttributesResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"> <ResponseMetadata> <RequestId>40945605-b328-53b5-aed4-1cc24a7240e8</RequestId> </ResponseMetadata> </SetQueueAttributesResponse>

本页内容: