FIFO 主题的消息持久性 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

FIFO 主题的消息持久性

Amazon SNS FIFO 主题和 Amazon SQS FIFO 队列持久耐用。这两种资源类型都以冗余方式跨多个可用区存储消息,并提供死信队列以处理异常情况。

在 Amazon SNS 中,当 Amazon SNS 主题由于客户端或服务器端错误而无法访问订阅的 Amazon SQS 队列时,消息传递失败:

  • 当 SNS FIFO 主题具有过时的订阅元数据时,会发生客户端错误。两个常见的客户端错误是 SQS FIFO 队列所有者执行以下操作之一时:

    • 删除队列。

    • 以防止 Amazon SNS 服务主体向其传递消息的方式更改队列策略。

    Amazon SNS 不会重试传递由于客户端错误而失败的消息。

  • 在以下情况下可能会发生服务器端错误:

    • Amazon SQS 服务不可用。

    • Amazon SQS 无法处理来自 Amazon SNS 服务的有效请求。

    在发生服务器端错误时,会重试失败的传输最多 100015 次(时间超过 23 天)。有关更多信息,请参阅 Amazon SNS 消息传输重试

对于任何类型的错误,Amazon SNS 都可以将消息旁边到 Amazon SQS 死信队列,以免数据丢失。

在 Amazon SQS 中,当消费者应用程序无法接收消息、处理消息并从队列中删除消息时,消息处理将失败。当接收请求的最大数量失败时,Amazon SQS 可以将消息旁边到死信队列,以免数据丢失。

汽车零部件价格管理示例使用案例,公司可以为每个 SNS FIFO 主题订阅以及每个订阅的 SQS FIFO 队列分配一个 SQS FIFO 死信队列 (DLQ)。这可以保护公司免受任何价格更新损失。

与 SNS FIFO 订阅或 SQS FIFO 队列相关联的死信队列必须是 SQS FIFO 队列。死信队列必须位于同一Amazon区域和 Amazon Web Services 账户 作为它保护的 SNS FIFO 订阅或 SQS FIFO 队列。有关更多信息,请参阅 。Amazon SNS 死信队列 (DLQ)为 Amazon SNS、Amazon SQS、Amazon Lambda发布Amazon计算博客