amqp vs amqplib-哪个Node.js amqp客户端库更好?

amqp vs amqplib-哪个Node.js amqp客户端库更好?,node.js,rabbitmq,amqp,Node.js,Rabbitmq,Amqp,这些amqp客户端库之间有什么区别? 哪一个是最推荐的? 主要区别是什么?我一直在使用 这是我推荐的,这就是我一直使用它的原因。从我所做的工作来看,与我所看到的其他库相比,这个模块更加枯燥易读。我建议使用节点amqp。节点amqp有很多错误,维护不善,它隐藏了“通道”概念,这给rabbitmq服务器带来了很多问题(因为它们从未关闭) 我是编写bramqp库的人。所以我要承认,从一开始,我可能有点偏见P 在我看来,只要你知道的规格,应该工作良好。否则,请使用 以下是node.js可用的amqp库

这些amqp客户端库之间有什么区别? 哪一个是最推荐的? 主要区别是什么?

我一直在使用


这是我推荐的,这就是我一直使用它的原因。从我所做的工作来看,与我所看到的其他库相比,这个模块更加枯燥易读。

我建议使用节点amqp。节点amqp有很多错误,维护不善,它隐藏了“通道”概念,这给rabbitmq服务器带来了很多问题(因为它们从未关闭)

我是编写bramqp库的人。所以我要承认,从一开始,我可能有点偏见P

在我看来,只要你知道的规格,应该工作良好。否则,请使用


以下是node.js可用的amqp库

-promise风格,仍在更新,看起来相当稳定和简单

-提供对AMQP功能的完全低级别访问,不建议启动

-coffeescript实现类似于amqp/node amqp

-流行的、固定的API,不经常更新,一些奇怪的错误,稳定但有限


以下库使用以前的库之一,同时提供更易于使用的界面或添加功能

使用amqplib/amqp.node

使用amqplib/amqp.node

使用amqplib/amqp.node

使用bramqp

使用amqp/节点amqp

使用wascaly


我还将单独添加,因为它可以连接到AMQP1.0服务器


如果还有什么需要补充的,请告诉我。

我自己刚开始学习rabbitmq。我从其他博客中发现,ampq.node被广泛接受。我发现的另一个(未测试)来自Wascaly<代码>https://github.com/LeanKit-Labs/wascally

我两者都用了一段时间。乍一看,节点amqp(amqp)似乎更合适,但实际上它有很多bug,没有人修复它们。比如,

  • RabbitMQ的MQTT和STOMP适配器应允许使用这两种协议的客户端与使用AMQP的客户端之间进行通信,但节点AMQP无法解析MQTT或STOMP发送的消息,而AMQP.node(amqplib)可以
  • 节点amqp(amqp)已实现自动重新连接,因此不会在意外断开连接时引发异常。这意味着您将被迫使用内置的重新连接,您无法检测到断开连接并自行处理。但是,它的重新连接总是使连接数加倍。它最终将耗尽客户端和服务器。我宁愿用amqp.node(amqplib)编写自己的重新连接函数
  • 我用www.robomq.io提供的代理对它进行了测试,这是一个很好的测试,所以应该归咎于库。不过,在Node.js中实现一个完美的库是困难的


    顺便说一句,您可以在5个场景中找到使用amqp.node(amqplib)的完整示例代码,以及。

    上的文档也值得一提。它构建在amqplib之上,具有一系列有用的功能,如自动重新连接逻辑、基于配置的订阅/发布以及对TDD的良好支持。

    这个问题可能需要在2020年更新答案

    关于不同的库做什么,您仍然可以参考bakkerthehacker的答案

    2020年:

  • 似乎不再受到支持了。这是最后一次 两年前出版
  • 对于AMQP 0-9-1协议,是使用最广泛的 图书馆
  • 对于AMQP1.0协议,您可以使用

  • 我一直在使用bramqp和amqplib,到目前为止,bramqp将成为一个完整的库解决方案。我喜欢通过“handle”对象“直接”使用amqp命令,这对您来说很重要;)谢谢你,伙计+1因为指向节点amqp隐藏了“通道”的概念,这是我从2天开始探索的。我可以说节点amqp是一个很差的模块。目前正在使用amqplib,到目前为止都很满意。第一个答案的日期是2013年。卡尔,你还这么认为吗?有关于这个话题的最新消息吗?在我的例子中,我使用节点amqp,因为它是从Rabbitmq的官方网站指向的,但是没有太多的更新。是的,节点amqp仍然在更新,但是amqp.node是。也是一个很好的替代方案,非常易于使用。完全同意,bramqp看起来更加健壮和直接,但需要更多的努力才能开始使用和理解它。在其他库中,每个库都有自己的方法和技术,用于相同或只是缺少amqp的某些功能。这是我这次选择bramqp的原因,这是一个很好的库的创建者提供的有用的比较。使用Node amqp库对Node和RabbitMQ进行了多次讨论。我也安装了,但后来发现通过单个TCP连接使用通道可以更好地管理资源。但在节点amqp中找不到其处理。正如上面Carl所指出的,您现在计划使用amqp.node,因为在am中是新的,但在更好地控制RabbitMQ时肯定会探索bramqp。您能否在节点amqp中创建通道?请注意,您的链接是在2010年发布的。“最推荐哪一个”是一个广泛的问题。另外两个很好。
    npm install amqp