我一直在使用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)
有没有人碰到这个?我尝试了几个例子,我总是得到这个。我也在EC2上运行它,如果这有帮助的话。
答案 0 :(得分:1)
这绝对是amqp和已安装的RabbitMQ版本之间的版本不匹配。问题很可能是由于rabbitmq-server太旧了。我在Debian机器上遇到了完全相同的问题,而RabbitMQ installation guide指向了正确的方向。
卸载当前版本的rabbitmq-server并从RabbitMQ网站下载最新的版本。
答案 1 :(得分:0)
我今天刚看到这个问题。在我看来,像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回滚到旧版本,看看它是否有效。