【发布时间】:2015-08-18 18:50:34
【问题描述】:
要从 NodeJS 发布者(我使用的是 bramqp,但问题是通用的)向 RabbitMQ(已确认、持久)发布消息,应该采用什么通道池策略?
如果我创建一个巨大的池(20,000 +)并在每次需要发布时寻找一个免费频道,然后在我得到确认时释放频道(保留在免费池中),然后在高负载时,确认延迟,因此创建了大量通道,导致 RabbitMQ 中的 erlang 进程迅速增加,从而降低其性能。
如果我使用非常小的池或没有池进行管理,那么一旦速率很高,就会抛出套接字错误,唯一的选择是重置完整的连接。
这里的最佳做法是什么?
【问题讨论】:
-
我不确定 RabbitMQ 服务器在通道方面的表现如何 - 如果它为每个通道创建一个新的 Erlang 进程,这让我很担心。您能否分享有关您的操作方案的更多详细信息?
标签: node.js rabbitmq amqp node-amqp