问题标签 [node-amqp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
757 浏览

node.js - 未调用 node-amqp 交换回调

我有以下代码。我的节点版本是 v0.7.0-pre 。当我运行代码时,屏幕打印

它不打印 Exchange 回调消息。当我运行

命令我看到新的交换被创建但回调没有被调用。我查看了测试用例,这似乎不是一个涵盖的案例。让我知道这是否是一个错误以及是否有解决方法

0 投票
12 回答
177859 浏览

node.js - RabbitMQ / AMQP:单个队列,同一消息的多个消费者?

我刚开始使用 RabbitMQ 和 AMQP。

  • 我有一个消息队列
  • 我有多个消费者,我想用相同的消息做不同的事情。

大多数 RabbitMQ 文档似乎都集中在循环,即单个消费者使用单个消息,负载在每个消费者之间分散。这确实是我目睹的行为。

一个例子:生产者有一个队列,每 2 秒发送一次消息:

这是一个消费者:

如果我启动消费者两次,我可以看到每个消费者都在循环行为中消费替代消息。例如,我将在一个终端中看到消息 1、3、5,在另一个终端中看到 2、4、6

我的问题是:

  • 我可以让每个消费者收到相同的消息吗?即,两个消费者都收到消息 1、2、3、4、5、6?这在 AMQP/RabbitMQ 中叫什么?一般是怎么配置的?

  • 这通常是这样做的吗?我是否应该让交换将消息路由到两个单独的队列中,而只有一个消费者?

0 投票
1 回答
2356 浏览

node.js - 生产者和消费者之间的 RabbitMQ 消息延迟

我在 RabbitMQ 服务器上运行 node.js amqp-node 客户端。我以两种不同的方式设置了一个简单的发布/消费测试——每种方式都会产生不同的延迟,我不知道为什么。延迟是从消息发送到传递的时间测量的。

第一种方法使用两个独立的进程 - 一个用于发布应用程序 - 一个用于消费应用程序。它产生大约 4 毫秒的延迟。第二种方法只使用一个应用程序来生产和消费。这会产生大约 40 毫秒的延迟。谁能向我解释这种行为,为什么?感谢您的时间。

方法 #1 生产者:

方法 #1 消费者

方法#2 生产者和消费者

0 投票
1 回答
2804 浏览

node.js - RabbitMQ 和 node-amqp:确认模式下的交换不确认 - 为什么?

我正在编写一个依赖于 RabbitMQ 的 Node.js 应用程序。我使用 node-amqp 作为连接到 RabbitMQ 的首选库。

一旦我建立了与 RabbitMQ 的连接,我要做的第一件事就是创建一个交换:

这完美地工作。如您所见,我正在使用创建交换confirm: true,因此我希望交换之后处于确认模式。

现在,一旦我尝试发布消息,就会出现问题:

问题是publish函数的回调从未被调用——尽管消息已成功发布(正如我在 RabbitMQ 的 Web 管理工具中看到的那样)。

我是否以错误的方式理解确认模式?这是 node-amqp 的错误吗?

任何帮助,将不胜感激 :-)

0 投票
2 回答
1731 浏览

queue - 队列发送者如何知道消费者崩溃了?

我正在使用节点-amqp。对于每个队列,有一个发送者和一个消费者。在发送方,我需要维护一个活跃消费者列表。问题是当消费者计算机崩溃时,我将如何获得通知并将其从发送方的列表中删除?

0 投票
1 回答
3335 浏览

node.js - 在 node-amqp (node.js) 中处理独占队列订阅时出错

当您订阅一个独占队列(一次只允许一个消费者)时,当队列被超额订阅(已经有一个消费者)时,node-amqp 会引发异常。

  • 我试过使用 .on("error",cb) 语法。
  • 我尝试过错误域(节点 0.10.0)
  • Try/catch 显然没有用

这是我的订阅线,但没什么特别的:

使用队列时会抛出未处理的异常:

查看 node-amqp 内部,我看到它们在模块内实现了一个独立的任务队列,以便在发生错误时,该任务在独立的上下文中运行。

是否有任何解决方法/修复?...或者我只是做错了什么?

0 投票
1 回答
1597 浏览

node.js - 在切换到 stomp-client 时使用 node-amqp 库的身份验证失败,它可以工作

我正在使用node-amqp库连接到在线 stomp 服务,在我使用stomp-client之前,它连接非常成功,但它不支持自动故障检测和重新连接,所以我想切换到node-amqp 以获得更强大的支持。

主机名、密码、用户名和端口是正确的,并且在 stomp-client 库示例中工作。但是,通过使用上面的代码,我收到一条错误消息,提示连接错误 { 消息:'连接已结束:可能是由于身份验证失败。' }。我查看了代码,没有发现我的身份验证或代码有任何问题。

这是 stomp-client 库中的工作代码。

谁能告诉我如何使用 node-amqp 来连接 stomp 服务

0 投票
1 回答
3010 浏览

node.js - node-amqp 无法向 RabbitMQ 发送消息

我正在尝试rabbitmq-tutorials,ruby 版本可以正常工作,但是 node.js 版本无法发送消息。我不知道出了什么问题。

运行后node send.js,运行过程node recv.js无法接收任何内容。并且rabbitmqctl list_queues不显示hello_node队列。

0 投票
2 回答
73 浏览

node.js - 我可以在一个连接中处理四个队列吗?

我有 2 个发布队列和 2 个订阅队列,我可以在连接中处理四个队列吗?

还是四个连接?

0 投票
1 回答
806 浏览

javascript - 无法使用 node-amqp 中的交换发送消息

这是我的代码:

我正在使用节点 0.10.2 和节点 amqp 0.1.6,

我可以看到textexchangerabbitmqctl list_exchanges但是没有testqueuerabbitmqctl list_queues怎么了?