1

我有一个兔子 mq 服务器正在运行,我的所有消息都通过一个直接交换。消息被路由到各个非永久队列(它们可能会持续几个小时)。我刚开始阅读有关队列绑定到交换的内容,并且对于我是否真的需要将队列绑定到交换有点困惑。我正在使用pika basic_publishconsume函数,所以也许这是暗示的?不太确定只是想了解更多。

谢谢

4

3 回答 3

3

如果您使用直接路由的默认交换 (exchange = ''),那么您不必声明任何绑定。默认情况下,所有队列都绑定到默认交换器。只要路由键与队列名称完全匹配(并且队列存在),默认交换 iw

于 2017-01-05T17:54:03.753 回答
1

您必须使用一些绑定键将队列绑定到交换,否则消息将被丢弃。

这就是任何 amqp 代理的工作方式,发布者发布消息以与某个密钥交换,amqp 代理(RabbitMq)将此消息从交换路由到与给定密钥与交换绑定的那些队列。

但是,在发布者中声明和绑定队列不是强制性的。您可以在订阅者中执行此操作,但请确保在启动发布者之前运行订阅者。

如果您认为您的消息在没有绑定的情况下被路由到队列,那么您就错过了一些东西。

于 2016-01-18T02:43:28.330 回答
1

总是。事实上,即使队列严格来说是消费者端的实体,它们也应该由生产者在创建交换时声明并绑定到直接交换。

于 2016-01-15T18:15:42.183 回答