问题标签 [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 回答
2106 浏览

node.js - Node.js 与 RabbitMQ 的连接

我有一个用于连接 RabbitMQ的node.js应用程序。amqlib我正在尝试使用 RabbitMQ 重现连接错误,并且通过重复相同的流程得到两个不同的错误。

我正在做的是:

  • 使用 RabbitMQ 管理启动 Docker 容器。
  • 启动连接到 RabbitMQ 的 node.js 应用程序(docker 或 npm)。
  • 继续 RabbitMQ 管理并rabbitmqctl执行stop_app

此流程每次都会产生以下两个异常之一(不确定它如何决定每个异常):

  • OperationalError:连接 ECONNREFUSED 172.24.0.3:5672
  • 错误:心跳超时

为什么会这样?另外,处理它们的最佳方法是什么?

这是我在连接器上的连接功能,似乎没有涵盖心跳异常:

0 投票
2 回答
5048 浏览

angular - Angular 10:未定义缓冲区

我需要一些帮助,因为我不知道该怎么做。我必须在我的 Angular 项目中使用“amqplib”。首先,我尝试使用“amqp-ts”,但是当我打开浏览器时出现错误:缓冲区未定义

经过几次尝试,我已切换到“amqplib”。但是,当我尝试调用库的函数时,出现错误:第二个错误

错误发生在一行:

同样,未定义 Buffer 。

我已经尝试过这里提到的几种解决方案:Angular 6 Uncaught ReferenceError: Buffer is not defined and I had end up with: -installed 'buffer' package

-在 polyfills.ts

-in index.html

尽管如此,他们都没有帮助,我仍然有这些错误:/

0 投票
1 回答
194 浏览

node.js - Rabbitmq nodejs 关闭连接

我对rabbitmq有疑问。

我想知道在发送“pub”消息时是否需要关闭与通道的连接和amqpblib连接,与消费者一样吗?或者正确的做法是保持连接打开?

我有这个要发布和订阅:

订阅

这将初始化连接和侦听器事件:

0 投票
1 回答
680 浏览

node.js - 使用 Docker 进行 RabbitMQ 内存管理

我正在使用 RabbitMQ 管理泊坞窗图像。问题在于大约 1 周的正常运行时间后,磁盘空间和内存几乎耗尽。我需要再次终止并重新启动它才能正常运行,但是这样做会丢失队列中的所有现有消息。

我用来启动rabbitmq服务器的命令是:docker run --rm -it --hostname my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management

我正在使用持久消息和持久队列。

排队人数将在 70 人左右。

每秒连接数可能从 5 到 100 不等

我正在使用amqplib npm 模块使用 Nodejs 与 RabbitMQ 进行交互。

难道我做错了什么?或者如果使用 docker 映像,我应该直接在任何服务器上进行配置吗?有没有办法只删除acknowledged消息?

提前致谢。

0 投票
1 回答
271 浏览

javascript - 如何在 rabbitmq 的 rpc 端点中增加消耗超时?

我使用 RPC 端点,其中一个端点存在以下问题:我没有收到消息,因此回调函数没有在 channel.consume() 上执行。

在那个端点,我发送一条消息,一个需要时间的进程正在服务器端运行,它用一条关于进程是否正确执行的消息来响应我。在服务器立即发送消息的其他端点没有问题。

我认为超时存在问题。我试图将对象 {timeout: 3600000} 放在 amqpOptions 之后,但问题还是没有解决。具体来说,无论我添加什么对象,连接和通道对象都具有相同的参数。如何正确更改超时?

0 投票
0 回答
95 浏览

rabbitmq - 使用nodejs的RabbitMQ集群的连接字符串?

我正在尝试使用 nodejs 库amqplib连接到 RabbitMQ 集群

我找不到有关连接字符串的任何信息。我正在尝试 var

有没有其他库支持集群?

0 投票
1 回答
34 浏览

node.js - 如何使用 Node js 以并行模式接收和处理来自服务总线的消息

MS-(A) 将数百条消息发送到 Azure 服务总线 - 主题,另一方面 MS-(B) 通过实现 AMQP 订阅接收这些消息

结果是消息以同步方式而不是并行方式接收。这意味着在处理程序不发送响应之前,不会收到其他消息。我希望阅读更多消息,直到等待。

当前结果: 之前(等待 5 秒)之后

预期结果:之前之前……之后(5秒后)

如何实现它以便在另一个处于睡眠状态或换句话说作为并行模式时继续接收消息?

0 投票
0 回答
21 浏览

rabbitmq - 如果没有收到 ACK,如何自动重新排队 AMQP 消息?

我正在使用 Node-Red 和在这里找到的基本调色板: https ://github.com/MeowWolf/node-red-contrib-amqp来处理 AMQP 消息。

如果一段时间后 RabbitMQ 没有收到 ACK,我想自动重新排队消息。我知道我可以告诉 AMQP 重新排队消息,但这需要手动 ACK,如果我的业务逻辑失败,我没有消息可以发送回重新排队。

我也知道消息可以自动重新排队,如此处所述https://www.rabbitmq.com/confirms.html#automatic-requeueing但仍然不是我的情况。

提前致谢