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

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

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 主题还支持使用 AWS KMS 密钥的消息服务器端加密 (SSE),以及通过具有 AWS PrivateLink 的 VPC 终端节点的消息隐私。有关更多信息,请参阅FIFO 主题的消息安全性