gpt4 book ai didi

node.js - 何时在 node.js 中创建 RabbitMQ channel

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:28 25 4
gpt4 key购买 nike

我读过的关于为 RabbitMQ 创建 channel 的常见建议建议每个线程使用一个 channel 。但在 Node.js 中,我们根本不管理线程。 那么我们什么时候创建 channel

我的用例是使用 AMQPLib 的 Node Web 服务器,它需要使用请求/响应模式与单个 RabbitMQ 服务器进行通信。每个 HTTP 请求可能需要多个 RabbitMQ 请求才能生成 HTTP 响应。我计划在每个 Node 进程中使用单个 Rabbit 连接,但对于各种请求或响应队列重用多少 channel ,我不确定。

一个附加问题:如果答案是为每个单独的请求使用一个 channel ,那么在发送每条消息之前必须创建一个 channel 是否会造成很大的延迟损失?

最佳答案

channel 是 AMQP 协议(protocol)级构造。它们实际上与底层连接无关(除了需要连接才能拥有 channel 这一明显事实之外)。 RabbitMQ 客户端的 .NET 实现编写得非常糟糕,以至于它在 channel 上进行线程锁定,因此每个线程一个 channel - 这是代码限制,而不是协议(protocol)限制。

有评论指出“创建” channel 需要付出高昂的成本 - 我不知道基于 channel 的构造如何会出现这种情况,但我不知道。

无论如何,回答您的问题:不要创建超出您需要的 channel 。如果您可以使用一个 channel 进行操作(听起来好像可以),请这样做。不要为自己创造更多的工作。

关于node.js - 何时在 node.js 中创建 RabbitMQ channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com