直接交换需要rabbitmq绑定吗?

hk8txs48  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(3)|浏览(206)

我运行了一个rabbit mq服务器,我的所有消息都经过一个直接交换。消息被路由到各个非永久队列(它们可能会持续几个小时)。我刚开始阅读有关队列绑定到交换的文章,对于是否真的需要将我的队列绑定到交换有点困惑。我使用pikabasic_publishconsume函数,所以这可能是隐含的?不是很确定,只是想了解更多。
谢谢

mcvgt66p

mcvgt66p1#

如果您使用预设交换进行直接路由(exchange =''),则您不需要宣告任何系结。预设情况下,所有队列都会系结至预设交换。只要路由保留字与队列名称完全相符(且队列存在),队列就可以保持系结至预设交换。请参阅https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html

xfb7svmp

xfb7svmp2#

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

jslywgbw

jslywgbw3#

您必须使用某个绑定键将队列绑定到交换,否则消息将被丢弃。
这是任何amqp代理的工作方式,发布者发布消息到带有某个密钥的exchange,amqp代理(RabbitMq)将此消息从exchange路由到那些与带有给定密钥的exchange绑定的队列。
然而,在publisher中声明和绑定队列并不是强制性的,你可以在subscriber中声明和绑定队列,但是要确保在启动publisher之前运行subscriber。
如果您认为您的消息在没有绑定的情况下被路由到队列,那么您就遗漏了一些东西。

相关问题