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

node.js - nodejs 和 rabbitmq 应用程序,我是否绕过 rabbit 连接

我正在创建一个新的nodejs服务,它将接收来自前端的请求,将该请求放在rabbitmq上,然后等待来自处理该请求的微服务的响应,然后将响应发送回我从请求返回的前端兔子。

我的问题是当我创建到 rabbitmq 的连接时,比如

最好在 app.js (顶层)中创建此连接并将此连接向下传递到每个请求的外部模块,还是我应该创建一个新连接并提交并等待每个请求?

感谢您的任何建议

0 投票
1 回答
2203 浏览

rabbitmq - RabbitMQ / AMQP:多队列,单消费者

我想创建一个消费者来处理来自多个可变数量的源的消息,这些源是动态连接或断开的。

我需要的是每个消费者优先考虑每个来源的前 N ​​条消息。然后运行多个消费者以提高速度。

我一直在阅读Work queuesRoutingTopics的文档以及许多其他文档,但没有确定如何实现这一点。我也做了一些没有运气的测试。

有人可以指出我该怎么做或在哪里阅读它吗?

- 编辑 -

队列A-----A3--A2--A1-┐</p>

队列B--B3--B2--B1-┼------消费者

队列C--C3--C2--C1-┘</p>

期望的效果是每个消费者获得每个队列的第一条消息。例如:A1、B1、C1、A2、B2、C2、A3、B3、C3 等。如果创建了一个新队列(QueueD),消费者将以同样的方式开始接收来自它的消息。

提前致谢

0 投票
1 回答
3109 浏览

node.js - 运行 node.js 应用程序时出现错误(也使用 rabbit)

我试图通过使用 npm 安装 amqp 来解决该错误,但它不起作用,我还在互联网上搜索了解决方案,但没有运气。

错误的图片

0 投票
1 回答
5819 浏览

node.js - Node.js amqplib - 在连接关闭的情况下无法实现重新连接

当与rabbitmq队列服务器的连接失败时,我正在尝试实现重新连接机制。此代码仅用于消费消息,下面是我的代码(通道初始化函数负责初始化消费者并绑定到队列)。

在连接失败时,我成功收到提示“[AMQP] reconnecting”,但在该队列没有重新连接之后,控制台日志中没有其他提示。

请帮忙。

0 投票
1 回答
1840 浏览

node.js - 优化 RabbitMQ 消费者批量消费

我有一个应用程序,在每次消息消费时,我都需要查询 MySQL 数据库以获取一些信息,并基于该进程消费消息。我想对此进行优化,以防止数据库上的多个查询增加负载。

我正在考虑一种方法,我至少等待x 消息y 秒。这样我可以批量消费一些消息,即使在某些时候我收到的消息较少,它们也会被消费。

示例:假设x = 100y = 10 秒

这意味着我等待至少 100 条消息或 10 秒,以先到者为准。这样,我可以一次查询数据库中的 100 条消息。此外,如果我收到的消息少于 100 条,剩余的消息将在最多 10 秒的窗口中处理。

我正在使用 NodeJS 和amqplib消费。我有以下基于 RabbitMQ 示例的代码:

我正在考虑拥有一个全局对象并在每个回调中添加它,并在它到达那些被处理的x 消息consume时检查该对象的计数。不过,不确定如何在此添加y 秒的时间上限,并确保如果我在时间窗口内收到少于x 条消息,则这些消息会得到处理

0 投票
1 回答
771 浏览

node.js - 我可以从我的 NodeJS 应用程序动态创建 RabbitMQ 铲子吗?

RabbitMQ 铲子插件提供了一个 HTTP API 来创建和配置铲子。假设我为我的 RabbitMQ 服务器实例启用了铲子和铲子管理插件,我可以从我的 NodeJS 应用程序动态创建铲子吗?

我目前使用 amqplib 连接到交易所。https://www.squaremobius.net/amqp.node/channel_api.html

但是我没有看到任何 API 可以动态创建铲子。这是可以实现的还是有任何其他库支持这一点?

0 投票
0 回答
162 浏览

rabbitmq - RabbitMQ 持有队列

我想保留rabbitMQ队列,然后合并队列中先前暂停的事务。假设我有一个限制,只有 5 笔交易后我会继续。我想合并这 5 笔交易并确认 5 笔交易已完成的渠道。

0 投票
1 回答
188 浏览

node.js - 使用 amqplib 将消息发送到队列的奇怪低性能?

我正在尝试使用 amqp.node ( https://github.com/squaremo/amqp.node ) 测试 Rabbitmq 延迟。

这是消费者:

这是生产者:

然后我削弱了消费者的 3 个实例:

和3个生产者:

我得到:

每个生产者的第一条消息具有低延迟,但其他消息没有。

我可以做些什么来改善这一点吗?

0 投票
1 回答
310 浏览

rabbitmq - 如何更改 RabbitMq 的默认设置以持久化所有消息和队列(全局)

我知道我可以为每个队列指定持久设置,并为每条消息手动指定持久设置。但我正在寻找一种方法来更改默认行为,以便所有内容(队列、消息等)都将是持久的和持久的。

将此设置在代码的中心位置将比配置文件更好,但请分享所有方法而不是“通用函数”,因为我有很多地方直接使用 amqpapi。

有任何想法吗?

0 投票
1 回答
859 浏览

node.js - 节点 RabbitMQ 消费消息并为每条消息做一些事情

我想使用来自 rabbitmq 服务的消息,并且对于我收到的每条消息,我都想做一些事情(例如:将该消息放入数据库,处理消息并通过 RabbitMq 通过另一个队列发送回复)每条消息。

目前我的 RabbitMq 消费者代码如下: