两个队列与主题交换机绑定,其路由键如下:
队列A,使用路由键模式匹配*.foo
队列B, 使用路由键模式匹配*.bar
我想向此交换机添加第三个队列,以接收既不是foo
消息也不是bar
消息的消息。如果我使用#
路由键绑定此队列,则自然获取所有需要的消息,但包括我不需要的foo
和bar
。
有没有一种方式可以路由匹配模式NOT *.foo
AND NOT *.bar
的消息?
standard workflow --> [main exchange (topic)]
| --> via binding *.foo --> [foo queue]
| --> via binding *.bar --> [bar queue]
v
[alternate exchange (let it be topic too)]
--> via binding * --> []
如果您有N个绑定,但希望捕获所有不匹配M个绑定的消息(其中M < N),则更为困难,但从技术上讲可以通过Dead Letter Exchange实现,并将其发布到仅具有M个绑定的自定义交换机中,然后应用备用交换机的情况。但这甚至听起来都很陈旧,更别提性能下降了(仅适用于真正高的消息流量)。