【问题标题】:RabbitMQ + Node.JS Connection issue, frame size too large?RabbitMQ + Node.JS 连接问题,帧大小太大?
【发布时间】:2011-09-27 20:46:04
【问题描述】:

我一直在使用带有 apache + php 的 RabbitMQ,想看看它与 Node.JS 在性能方面的比较。

使用最新的 node.js (0.4.12) 和 amqp 模块 (npm install amqp),我得到一个未知的异常连接,似乎是帧大小导致错误(amqp.js 中的第 181 行),删除代码中的错误只是引发了另一个与分配过大的数组大小有关的错误。

RabbitMQ 服务器只是一个具有默认配置的“apt-get install rabbitmq-server”。这在 PHP 中工作得很好。

Starting ... AMQP URL: amqp://localhost

events.js:47
        throw new Error("Uncaught, unspecified 'error' event.");
              ^
Error: Uncaught, unspecified 'error' event.
    at Connection.emit (events.js:47:15)
    at AMQPParser.onError (/nodeJS_stuff/node_modules/amqp/amqp.js:839:12)
    at AMQPParser.throwError (/nodeJS_stuff/node_modules/amqp/amqp.js:145:25)
    at AMQPParser.execute (/nodeJS_stuff/node_modules/amqp/amqp.js:181:18)
    at Connection.<anonymous> (/nodeJS_stuff/node_modules/amqp/amqp.js:851:12)
    at Connection.emit (events.js:64:17)
    at Connection._onReadable (net.js:672:14)
at IOWatcher.onReadable [as callback] (net.js:177:10)

有人遇到过这种情况吗?我已经尝试了几个例子,我总是得到这个。我也在 E​​C2 上运行它,如果有帮助的话。

【问题讨论】:

    标签: node.js rabbitmq amqp


    【解决方案1】:

    我今天才看到这个问题。在我看来,rabbitmq 和 amqp 的版本不匹配。我正在测试两个版本的 node-amqp(0.0.2 和 0.1.0)和 rabbitmq(1.7.2 和 2.3.1)。我发现 node-amqp 0.0.2 可以与两个版本的 rabbitmq 一起使用,但是较新的 node-amqp(0.1.0,实际上是 0.0.6 版)不适用于较旧的 rabbitmq。所以尝试将你的 node-amqp 回滚到旧版本,看看它是否有效。

    【讨论】:

      【解决方案2】:

      肯定是amqp和安装的RabbitMQ版本不匹配。问题很可能是由于 rabbitmq-server 太旧了。我在我的 Debian 机器上遇到了完全相同的问题,RabbitMQ installation guide 为我指明了正确的方向。

      卸载您当前版本的 rabbitmq-server 并从 RabbitMQ 网站下载最新版本。

      【讨论】:

      • 包管理器包含旧版本的RabbitMQ,直接从网站下载最新版本是正确的解决方案。
      猜你喜欢
      • 2019-03-26
      • 1970-01-01
      • 2022-12-04
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多