当前位置: 首页 > 知识库问答 >
问题:

何时在节点中创建 RabbitMQ 通道.js

公西天逸
2023-03-14

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

我的用例是一个使用AMQPLib的节点web服务器,它需要使用请求/响应模式与一个RabbitMQ服务器通信。每个HTTP请求可能需要多个RabbitMQ请求来生成HTTP响应。我计划在每个节点进程中使用一个单独的Rabbit连接,但是对于不同的请求或响应队列,我不确定在多大程度上可以重用通道。

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

共有1个答案

寿丰
2023-03-14

通道是一个AMQP协议级构造。它们实际上与底层连接无关(除了为了拥有通道而需要连接这一明显事实)。RabbitMQ客户端的. NET实现写得太差了,以至于它线程锁定通道,因此每个线程一个通道——这是代码限制,而不是协议限制。

有一个评论说有一个“创造”通道的沉重代价——我不明白这怎么可能是真的,基于一个通道的构造,但我不知道。

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

 类似资料:
  • 问题内容: 我创建了一个新的JsonNode 与此节点一起,然后如何在其中添加键值对,以便可以使用新值构造此新节点?我在http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html中阅读的内容涉及使用 但是,查看Jackson的JsonNode(v1.8)的API并没有显示任何此类方法。 问题答案: 这些方法在:除法中,大多数读取

  • 我的代码!! 获取错误!! TypeError:无法读取B:\nodejs\newp\app中未定义的属性“name”。js:75:30在第二层。在路由的下一个(B:\nodejs\newp\node\u modules\express\lib\router\layer.js:95:5)(B:\nodejs\newp\node\u modules\express\lib\router\route.

  • 我有一个csv格式的数据集。其中一个字段是“elem_type”。基于此类型,我需要创建不同的类型节点,并在使用csv load加载数据时,根据“elem_type”为csv的“列”赋予不同的名称,有什么方法可以做到这一点吗? 我的csv没有标头,数据如下所示: 基于第一个colmuns,即我的“elem_type”,我要加载数据并定义3种类型的节点(Person,Car,Boat)

  • 在 Netty 4.1 中,是否可以创建子通道/管道或嵌套通道/管道? 例如,我有一个管道,其中安装了各种编解码器,用于协议/序列化。在管道结束时,我将一条消息传递给我的应用程序级逻辑。过度简化的示例: 然后,这个应用逻辑的句柄方法可以执行它想要的任何顺序逻辑。这清楚地分离了我的应用程序级别逻辑,但是,我想利用Netty的ChannelPipeline提供的“拦截过滤器模式的高级形式”。我想将管道

  • 如何在Javafx 2.0中制作可拖动节点。JavaFX专门用于GUI目的,仅我需要一些示例,谢谢

  • 在实时数据库中未创建根节点。所有依赖项均已实施,firebase已连接到该项目。这是代码。 public void onComplete(@非空任务任务){

  • 我有一个多节点集群星火集群。我正在使用log4j创建日志。日志只创建集群中的所有节点。它们也是在/tmp目录中创建的,而不是在任何其他目录中创建的。这是