在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:principaltype
- aws:SecureTransport
- aws:SourceArn
- aws:SourceIp
- aws:UserAgent
- aws:userid
- aws:username
这些都似乎无法受到我发布到 message_x
主题的任何消息的影响。
在使用Amazon Simple Notification Service进行广播到多个Simple Queue Service队列时,是否有可能做到像这样的事情,每个队列接收到发布到主题的消息子集?