我可以创建一个连接来监听队列并将消息发送到另一个交换器吗? 目前,如果我使用一个连接进行发送,我的消费者会收到它,但它甚至没有绑定(bind)到此交换。
也许,应该更改一些设置?
最佳答案
是的,当然你可以接受它。
在 RabbitMq 中,您希望保持连接(至少一个)打开为 尽可能长,由于每次打开一个的性能影响和 每次,它在 C# 中都是线程安全的。
在对面。 channel 应该为每个线程打开 并且不能在 C# 客户端实现中共享。
除非您严格线性工作(无并行处理),否则您可以使用流程并通过同一 channel (当然是在同一连接上)发布。
请注意,为一个连接打开的多个 channel 可能会在流量方面相互阻塞。只有一个 channel 可以同时通过连接发送/接收。因此,尝试组织在同时发布和使用期间不会相互阻塞的连接和 channel 。
关于c# - RabbitMQ 在一个连接内发送和消费消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22932285/