Noa*_*Gal 14 rabbitmq node-amqp
我在Node.js中使用amqplib,我不清楚代码中的最佳实践.
基本上,我当前的代码调用amqp.connect()Node服务器启动的时间,然后为每个生产者和每个使用者使用不同的通道,从不实际关闭它们中的任何一个.我想知道这是否有意义,或者我应该创建频道,每次要发布消息时发布和关闭它.那连接怎么样?这是一个"良好实践"连接一次,然后在我的服务器的生命周期中保持打开?
在消费者方面 - 我可以使用单个连接和单个通道来监听多个队列吗?
感谢您的任何澄清
Mik*_*kko 25
通常,打开和关闭每条消息的连接和通道并不是一个好习惯.连接是长期存在的,它需要资源来保持打开和关闭它们.对于通道,它们与连接共享TCP连接,因此它们更轻量级,但它们仍然会消耗内存,绝对不应该在完成使用后保持打开状态.
建议每个线程有一个通道,每个用户有一个通道.但是对于发布来说,使用相同的频道是完全可以的.但请记住,根据操作,协议可能会在某些情况下终止通道(例如队列存在检查),因此请做好准备.在许多客户端实现上,最大通道数也有软(可配置)和硬(通常为65535)限制.
总而言之,根据您的使用情况,使用一个到几个连接,在需要时打开频道并在有意义时分享它们,但记得在完成后关闭它们.
rabbitmq 文档解释了连接和通道的性质(文档的结尾).关于这个问题的公认答案有很好的信息.
| 归档时间: |
|
| 查看次数: |
8401 次 |
| 最近记录: |