在RabbitMQ中,可以创建一个交换,然后将其绑定到多个队列,每个队列都有一个路由密钥。这样可以启用以下消息传递体系结构:

           message_x
         /    |     \
foo-msg_q  bar-msg_q  msg-logger_q


客户端将消息发布到message_x交换机,该交换机仅将路由键为“ foo”的消息路由到foo-msg_q队列,将路由键为“ bar”的消息仅路由到bar-msg_q队列,所有消息都路由到msg-logger_q队列。

我在弄清楚如何在AWS中执行此操作时遇到了麻烦。我的第一个想法是在各个队列上设置权限以接受基于主题的消息,但是权限条件唯一可用的字段是:


aws:CurrentTime
aws:EpochTime
aws:MultiFactorAuthAge
aws:主要类型
aws:SecureTransport
aws:SourceArn
aws:SourceIp
aws:UserAgent
aws:userid
aws:用户名


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

当使用Amazon Simple Notification Service散布到多个Simple Queue Service队列,并且每个队列接收已发布到该主题的消息子集时,是否可以执行类似的操作?

最佳答案

编辑
我无法删除接受的答案,因此请参阅the answer below以获取当前正确的答案,因为此功能已发布。
原始(现在不正确)答案(后代):

不,这是不可能的。对他们来说将是一个很棒的功能
虽然。
我知道的唯一替代方法是为每个路由规则创建一个主题
然后发布到正确的主题。它不漂亮,但是
完成任务。如果您有很多规则,则可能需要
他们允许的3000多个主题。您可以要求增加
按照说明从AWS在其网站上进行主题限制
这里
http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_ses_quota

08-07 21:09
查看更多