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

FIFO 主题的消息重复数据删除

Amazon SNS FIFO 主题和 Amazon SQS FIFO 队列支持消息重复数据删除,只要满足以下条件,即可提供一次性消息传输和处理:

  • 订阅的 SQS FIFO 队列存在,并具有允许 Amazon SNS 服务委托人向队列传输消息的权限。

  • SQS FIFO 队列使用者处理消息,并在可见性超时到期之前将其从队列中删除。

  • Amazon SNS 订阅主题没有消息筛选功能。配置消息筛选时,SNS FIFO 主题支持最多一次性传输,因为可以根据订阅筛选策略筛选出消息。

  • 没有阻止确认邮件传输的网络中断。

注意

消息重复数据删除适用于整个 SNS FIFO 主题,而不是单个消息组

当您将消息发布到 SNS FIFO 主题时,该消息必须包含重复数据删除 ID。此 ID 包含在 SNS FIFO 主题传输给订阅的 SQS FIFO 队列的消息中。

如果具有特定重复数据删除 ID 的消息成功发布到 SNS FIFO 主题,则在五分钟重复数据删除间隔内使用相同重复数据删除 ID 发布的任何消息都将被接受,但不会传输。SNS FIFO 主题继续跟踪消息重复数据删除 ID,即使在消息被传输到订阅的终端节点之后也是如此。

如果保证消息正文对于每个已发布的消息都是唯一的,您可以为 Amazon SNS FIFO 主题和订阅的 SQS FIFO 队列启用基于内容的重复数据删除。Amazon SNS 使用消息正文生成一个唯一的哈希值,以用作每个消息的重复数据删除 ID,因此您无需在发送每条消息时设置重复数据删除 ID。

注意

消息属性不包括在哈希计算中。

汽车零部件价格管理示例使用案例中,公司必须为每次价格更新设置一个通用唯一的重复数据删除 ID。这是因为即使在批发和零售的消息属性不同时,消息正文也可以是相同的。但是,如果公司将业务类型(批发或零售)与产品 ID 和产品价格一起添加到消息正文中,它们可以在 SNS FIFO 主题和订阅的 SQS FIFO 队列中启用基于内容的复制。


        使用消息重复数据删除功能,多个含有重复内容的消息只能传输一次。

除了消息排序和重复数据删除以外,SNS FIFO 主题还支持使用 Amazon KMS 进行消息服务器端加密 (SSE) 以及 Amazon PrivateLink 保护通过 VPC 终端节点的消息隐私。有关更多信息,请参阅 FIFO 主题的消息安全性