何时在node.js中创buildRabbitMQ通道

我读过的关于为RabbitMQ创build通道的常见build议build议每个线程使用一个通道。 但是在node.js中,我们根本不pipe理线程。 那么我们什么时候创build渠道

我的使用案例是使用AMQPLib的节点Web服务器,它需要使用请求/响应模式与单个RabbitMQ服务器进行通信。 每个HTTP请求可能需要多个RabbitMQ请求才能生成HTTP响应。 我打算在每个节点进程中使用一个Rabbit连接,但是就各种请求或响应队列而言,重用通道有多less,我不确定。

一个附加问题:如果答案是为每个单独的请求使用一个通道,那么在发送每个消息之前必须创build一个通道会有很多的延迟惩罚吗?

通道是AMQP协议级别的结构。 他们实际上与底层连接无关(除了明显的事实,即为了有一个通道需要连接)。 RabbitMQ客户端的.NET实现写得很差,它在通道上线程locking,因此每个线程只有一个通道 – 这是一个代码限制,而不是一个协议限制。

有一条评论指出,“创造”渠道的成本很高 – 根据渠道的构build,我不明白这是怎么回事,但我不知道。

无论如何,要回答你的问题:不要创造比你需要更多的渠道。 如果你可以使用一个频道(听起来你可以),那就这样做。 不要为自己创造更多的工作。