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

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

FIFO主题的消息分组

属于同一组的消息按相对于组的严格顺序逐个处理。

当您向 Amazon SNS FIFO 主题发布消息时,您需要设置消息组 ID。组 ID 是指定消息属于特定消息组的强制令牌。该SNSFIFO主题将群组 ID 传递给已订阅的 Amazon SQS FIFO 队列。SNSFIFO主题或SQSFIFO队列IDs中的群组数量没有限制。消息组 ID 不会传递给 Amazon SQS 标准队列。

消息组和订阅之间没有关联性。因此,发布到任何消息组的消息都会传输到所有已订阅队列,但须遵守附加到订阅的任何筛选策略。有关更多信息,请参阅 FIFO主题消息传送针对FIFO主题的消息过滤

汽车零部件价格管理示例使用案例中,平台中销售的每个产品都有一个专用的消息组。处理所有价格更新时都使用相同的 Amazon SNS FIFO 主题。价格更新的顺序保留在单个汽车零部件产品的上下文中,但不是跨多个产品。下图演示了工作原理。请注意,对于消息组 ID 为 product-214 的产品,m1 消息始终在 m4 消息之前受到处理。在使用 Amazon 到 Amazon SNS FIFO 的整个工作流程中,都会保留此顺序SQSFIFO。同样,对于消息组 ID 为 produ ct-799 的产品,只要工作流程使用亚马逊和SNSFIFO亚马逊,则消息 m 2 将在消息 m3 之前处理。SQS FIFO但是,使用 Amazon SQS 标准队列时,无法保证消息顺序,也不存在消息组。product-214product-799 消息组彼此独立,因此它们的消息排序方式之间没有任何关系。

消息按照相对于消息组更严格的顺序进行处理。

按消息组分发数据IDs以提高性能

为了优化传送吞吐量,Amazon SNS FIFO 主题并行传送来自不同消息组的消息,同时严格维护每个消息组内的消息顺序。每个消息组每秒最多可以传送 300 条消息。因此,要实现单个主题的高吞吐量,请使用大量不同的消息组IDs。通过利用各种各样的消息组,Amazon SNS FIFO 主题可以自动将消息分发到更多的并行分区。

注意

Amazon SNS FIFO 主题经过优化,无论消息组的数量如何IDs,均可跨消息组均匀分发消息。 Amazon 建议您使用大量不同的消息组IDs以优化性能。

当以高吞吐量发布到您的 Amazon SNS FIFO 主题并且订阅了一个或多个 Amazon SQS FIFO 队列时,建议您在队列上启用高吞吐量。有关更多信息,请参阅 Amazon 简单FIFO队列服务开发者指南中的队列高吞吐量