首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用过滤将消息从Amazon路由到SQS

使用过滤将消息从Amazon路由到SQS
EN

Stack Overflow用户
提问于 2014-03-05 11:49:30
回答 3查看 13.8K关注 0票数 20

在RabbitMQ中,可以创建一个交换,然后将其绑定到多个队列,每个队列都有一个路由密钥。这使得这样的消息传递架构能够实现:

代码语言:javascript
复制
           message_x
         /    |     \
foo-msg_q  bar-msg_q  msg-logger_q

客户端将消息发布到message_x exchange,后者将具有路由键"foo“的消息路由到foo-msg_q队列,只将具有路由键"bar”的消息路由到bar-msg_q队列,并将all消息路由到msg-logger_q队列。

我很难想出在AWS里怎么做。我的第一个想法是在各个队列上设置权限,以便根据主题接受消息,但权限条件的唯一可用字段是:

  • aws:当前
  • aws:EpochTime
  • aws:多因素授权
  • aws:主要类型
  • aws:安全运输
  • aws:SourceArn
  • aws:资料来源
  • aws:UserAgent
  • aws:用户标识
  • aws:用户名

所有这些似乎都不会受到我发布到message_x主题的任何消息的影响。

如果使用向多个简单队列服务队列扇形,每个队列都接收一个发布到主题的消息子集,是否可以这样做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-08 17:54:00

编辑

我无法删除一个可接受的答案,因此由于此功能已经发布,请参阅the answer below以获得现在正确的答案。

原文(现在不正确)答案(为后代):

不不可能。不过,对他们来说,这将是一个很好的特性。 我知道的唯一选择是为每个路由规则创建一个主题,然后发布到正确的主题。它不漂亮,但它完成了任务。如果你有很多规则,你可能需要超过3000的主题,他们所允许的。您可以按照这里的说明( quota ),从其网站上的AWS请求增加主题限制。

票数 7
EN

Stack Overflow用户

发布于 2017-11-24 20:04:24

这可以通过在SNS中使用消息属性筛选来实现。在向SNS主题订阅不同的SQS队列后,可以使用SNS指定要筛选的属性。这将允许具有不同属性的消息被路由到正确的SQS队列。

这也不限于SQS队列,而是SNS主题上的任何订阅源。例如,单个SNS主题可以向Lambda发布一组消息,将另一组消息发布到SQS。

SDK参考资料:SetSubscriptionAttributes.html

这里给出了更多细节,并给出了示例:https://aws.amazon.com/blogs/compute/simplify-pubsub-messaging-with-amazon-sns-message-filtering/

票数 32
EN

Stack Overflow用户

发布于 2022-03-11 03:27:54

AWS现在支持对SNS订阅服务器进行过滤。每个子程序可以设置其过滤所需消息的策略,并丢弃其他消息。如果您不对订阅服务器设置任何策略,它将得到所有消息。请参阅以下https://aws.amazon.com/getting-started/hands-on/filter-messages-published-to-topics/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22196890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档