Routing RabbitMQ交换与全面捕获

Routing RabbitMQ交换与全面捕获,routing,rabbitmq,Routing,Rabbitmq,以拉比方式给出 交换 两个名为default和specific的队列 两个路由键all.specific和all. 采用以下方案 我试图实现以下内容(但未成功) 如果路由键为“all.specific”的消息到达,则必须将其路由到specific队列 如果路由键为“all.generic”的消息到达,则必须将其路由到默认队列 我尝试了两种不同的方法 1) 交换类型“直接” 我无法在路由密钥中使用通配符,因此无法路由“all.generic”、“all.other_generic”和许多

以拉比方式给出

  • 交换
  • 两个名为defaultspecific的队列
  • 两个路由键all.specificall.
采用以下方案

我试图实现以下内容(但未成功)

  • 如果路由键为“all.specific”的消息到达,则必须将其路由到specific队列

  • 如果路由键为“all.generic”的消息到达,则必须将其路由到默认队列

我尝试了两种不同的方法

1) 交换类型“直接”

我无法在路由密钥中使用通配符,因此无法路由“all.generic”、“all.other_generic”和许多其他传入消息

2) exchange类型“主题”

它将'all.generic'、'all.other_generic'路由到默认队列,但'all.specific'到达两个队列,这就是为什么我只希望访问特定队列的原因

我认为我使用exchange和队列的方式是错误的,但我无法理解如何以正确的rabbitmq方式实现这一点。
你能帮我吗?

绑定和路由密钥中找不到最好的选项

相反,我会考虑其他交换方式

使用AE,您基本上可以对与发布消息的exchange中的某个绑定不匹配的任何消息进行“全面”交换

在您的情况下,您的exchange只有
all.specific
绑定才能将消息发送到
specific
队列

备用交换将直接将消息传递到
通用
队列。这可以通过主题来完成,以重复使用相同的路由密钥。或者,它可以作为扇出交换完成,并且只将一个队列绑定到它