如何使用除routing_key中指定之外的所有RabbitMQ消息?

时间:2018-01-24 12:09:02

标签: rabbitmq pika

RabbitMQ允许基于routing_key匹配在多个队列上分发消息。对于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推送所有消息。

在我的用例中,我需要两个绑定到同一个交换的队列,一个队列接收所有带有routing_key ='A.B.A'的消息,另一个队列接收所有其他与'A.B.A'不匹配的消息。为第一个队列做这件事并不是什么大不了的事,但是我在教程中找不到任何可以帮助我进入第二个队列的东西......

拜托,在python + pika库中有一个例子会很高兴。

1 个答案:

答案 0 :(得分:1)

您能澄清一下'101'的要求吗?

如果它"只是"将消息推送到同一个交易所,您可以查看alternate exchange

基本上它是" main"的配置。交换,声明任何与任何绑定到绑定到它的队列不匹配的消息将被转移到备用交换(可以是不同类型)用于处理。

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