FIFO 主题的消息筛选
Amazon SNS FIFO 主题支持消息筛选。使用消息筛选可通过从发布者系统卸载消息路由逻辑,从订阅者系统卸载消息筛选逻辑来简化您的架构。
当您为 Amazon SQS FIFO 队列订阅 SNS FIFO 主题时,您可以使用消息筛选来指定订阅者接收消息的子集,而不是所有消息。每个订阅者都可以将其自己的筛选策略设置为订阅属性。如果筛选策略与传入消息的属性匹配,则主题会向订阅者传输消息的副本。如果没有匹配项,则主题不会传输消息的副本。
在汽车零部件价格管理示例使用案例中,假设已设置以下 Amazon SNS 筛选策略:
-
对于批发队列,筛选策略
{"business":["wholesale"]}
匹配属性名为"business"
且在一组值中具有"wholesale"
的每条消息。在下图中,消息 m1 中的属性为具有值"wholesale"
的String
。消息 m3 中的属性为具有值"wholesale,retail"
的String.Array
。因此,m1 和 m3 均匹配筛选策略的条件,并且这两条消息都会传输到批发队列中。 -
对于零售队列,筛选策略
{"business":["retail"]}
匹配属性名为"business"
且在一组值中具有"retail"
的每条消息。在下图中,消息 m2 中的属性为具有值"retail"
的String
。消息 m3 中的属性为具有值"wholesale,retail"
的String.Array
。因此,m2 和 m3 均匹配筛选策略的条件,并且这两条消息都会传输到零售队列中。
下图显示了使用这些筛选策略进行消息筛选的效果。

SNS FIFO 主题支持各种匹配运算符,包括属性字符串值、属性数值和属性键。有关更多信息,请参阅 Amazon SNS 消息筛选。
SNS FIFO 主题不会向订阅的终端节点传输重复的消息。有关更多信息,请参阅 FIFO 主题的消息重复数据删除。