c# - RabbitMQ 在一个连接内发送和消费消息

标签 c# rabbitmq producer-consumer

我可以创建一个连接来监听队列并将消息发送到另一个交换器吗? 目前,如果我使用一个连接进行发送,我的消费者会收到它,但它甚至没有绑定(bind)到此交换。

也许,应该更改一些设置?

最佳答案

是的,当然你可以接受它。

  • 在 RabbitMq 中,您希望保持连接(至少一个)打开为 尽可能长,由于每次打开一个的性能影响和 每次,它在 C# 中都是线程安全的。

  • 在对面。 channel 应该为每个线程打开 并且不能在 C# 客户端实现中共享。

除非您严格线性工作(无并行处理),否则您可以使用流程并通过同一 channel (当然是在同一连接上)发布。

请注意,为一个连接打开的多个 channel 可能会在流量方面相互阻塞。只有一个 channel 可以同时通过连接发送/接收。因此,尝试组织在同时发布和使用期间不会相互阻塞的连接和 channel 。

关于c# - RabbitMQ 在一个连接内发送和消费消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22932285/

相关文章:

c# - 如何按名称而不是位置索引图像列表?

关闭套接字上的 C# TcpClient WriteAsync 不会引发异常

c# - 百万插入 : SqlBulkCopy timeout

java - Spring Cloud Stream RabbitMq - 从源代码设置属性

node.js - 多个队列在一个 channel 中消费

c# - 如何在希伯来语中使用 String.Format

rabbitmq - 为什么我在重新排队时从 RabbitMQ 收到相同的消息?

java - 生产者和消费者共享队列,其值来自 HttpRequest

java - 在生产者/消费者模式中使用多个生产者和消费者对java中的字符串进行排序有什么好处?

java - Kafka集群zookeeper故障处理