如何使用路由密钥中指定以外的所有RabbitMQ消息?

如何使用路由密钥中指定以外的所有RabbitMQ消息?,rabbitmq,pika,Rabbitmq,Pika,RabbitMQ允许基于路由密钥匹配在多个队列上分发消息。对于type='topic'的交换,可以指定通配符,以允许更灵活的筛选(与type='direct'交换相比),它们是: * (star) can substitute for exactly one word. # (hash) can substitute for zero or more words. 例如,对于带有routing_key='A.B.*'的队列,交换机正在推送带有模式'A.B.A'、'A.B.1'、'A.B.XXX

RabbitMQ允许基于路由密钥匹配在多个队列上分发消息。对于type='topic'的交换,可以指定通配符,以允许更灵活的筛选(与type='direct'交换相比),它们是:

* (star) can substitute for exactly one word.
# (hash) can substitute for zero or more words.
例如,对于带有routing_key='A.B.*'的队列,交换机正在推送带有模式'A.B.A'、'A.B.1'、'A.B.XXX'的routing_key的所有消息

在我的用例中,我需要两个绑定到同一交换机的队列,一个队列接收路由为A.B.A的所有消息,另一个队列接收与A.B.A不匹配的所有其他消息。对于第一个队列来说,这并不是什么大问题,但我在教程中找不到任何有助于我处理第二个队列的内容


请在python+pika库中提供一个示例。能否澄清您对绑定到同一交换的
的要求

如果“只是”将消息推送到同一个交换,那么您可以签出

基本上,它是“主”交换机上的一种配置,它声明任何与绑定到它的队列的绑定不匹配的消息都将被传输到备用交换机(可以是不同类型的)进行处理


一个简单的设置是使用fanout类型的备用交换,将所有未绑定的消息路由到给定队列。

谢谢,备用交换解决了这个问题,尽管需要额外的交换。为什么他们没有在这里为这些有用的特性提供额外的教程。。。