在rabbitmq中给出
采用以下方案
我试图实现以下(没有成功)
如果路由密钥为“all.specific”的邮件到达,则必须路由到特定队列
如果路由密钥为“all.generic”的邮件到达,则必须路由到默认队列
我尝试了两种不同的方法
1)交换类型'直接'
我无法在路由键中使用通配符,因此我无法路由'all.generic','all.another_generic'和许多其他传入消息
2)交换类型'主题'
它将'all.generic','all.another_generic'路由到默认队列,但'all.specific'到达两个队列,为什么我只想要到达特定队列。
我认为我以错误的方式使用交换和队列,但我无法理解如何以正确的方式实现这一点。 你能救我吗?
答案 0 :(得分:2)
您最好的选择是在绑定和路由键中找不到。
我会查看替代交易所。
https://www.rabbitmq.com/ae.html
使用AE,您基本上可以拥有一个"全部捕获"交换任何与其发布的交易所中的某个绑定不匹配的消息。
在您的情况下,您的交换只有all.specific
绑定才能将消息发送到specific
队列。
备用交换将直接将消息传递到generic
队列。这可以通过主题来完成,以重用相同的路由键。或者它可以作为扇出交换完成,只有一个队列绑定它。