问题标签 [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.
node.js - nodejs 和 rabbitmq 应用程序,我是否绕过 rabbit 连接
我正在创建一个新的nodejs服务,它将接收来自前端的请求,将该请求放在rabbitmq上,然后等待来自处理该请求的微服务的响应,然后将响应发送回我从请求返回的前端兔子。
我的问题是当我创建到 rabbitmq 的连接时,比如
最好在 app.js (顶层)中创建此连接并将此连接向下传递到每个请求的外部模块,还是我应该创建一个新连接并提交并等待每个请求?
感谢您的任何建议
rabbitmq - RabbitMQ / AMQP:多队列,单消费者
我想创建一个消费者来处理来自多个可变数量的源的消息,这些源是动态连接或断开的。
我需要的是每个消费者优先考虑每个来源的前 N 条消息。然后运行多个消费者以提高速度。
我一直在阅读Work queues、Routing和Topics的文档以及许多其他文档,但没有确定如何实现这一点。我也做了一些没有运气的测试。
有人可以指出我该怎么做或在哪里阅读它吗?
- 编辑 -
队列A-----A3--A2--A1-┐</p>
队列B--B3--B2--B1-┼------消费者
队列C--C3--C2--C1-┘</p>
期望的效果是每个消费者获得每个队列的第一条消息。例如:A1、B1、C1、A2、B2、C2、A3、B3、C3 等。如果创建了一个新队列(QueueD),消费者将以同样的方式开始接收来自它的消息。
提前致谢
node.js - 运行 node.js 应用程序时出现错误(也使用 rabbit)
我试图通过使用 npm 安装 amqp 来解决该错误,但它不起作用,我还在互联网上搜索了解决方案,但没有运气。
node.js - Node.js amqplib - 在连接关闭的情况下无法实现重新连接
当与rabbitmq队列服务器的连接失败时,我正在尝试实现重新连接机制。此代码仅用于消费消息,下面是我的代码(通道初始化函数负责初始化消费者并绑定到队列)。
在连接失败时,我成功收到提示“[AMQP] reconnecting”,但在该队列没有重新连接之后,控制台日志中没有其他提示。
请帮忙。
node.js - 优化 RabbitMQ 消费者批量消费
我有一个应用程序,在每次消息消费时,我都需要查询 MySQL 数据库以获取一些信息,并基于该进程消费消息。我想对此进行优化,以防止数据库上的多个查询增加负载。
我正在考虑一种方法,我至少等待x 消息或y 秒。这样我可以批量消费一些消息,即使在某些时候我收到的消息较少,它们也会被消费。
示例:假设x = 100,y = 10 秒
这意味着我等待至少 100 条消息或 10 秒,以先到者为准。这样,我可以一次查询数据库中的 100 条消息。此外,如果我收到的消息少于 100 条,剩余的消息将在最多 10 秒的窗口中处理。
我正在使用 NodeJS 和amqplib
消费。我有以下基于 RabbitMQ 示例的代码:
我正在考虑拥有一个全局对象并在每个回调中添加它,并在它到达那些被处理的x 消息consume
时检查该对象的计数。不过,不确定如何在此添加y 秒的时间上限,并确保如果我在时间窗口内收到少于x 条消息,则这些消息会得到处理
node.js - 我可以从我的 NodeJS 应用程序动态创建 RabbitMQ 铲子吗?
RabbitMQ 铲子插件提供了一个 HTTP API 来创建和配置铲子。假设我为我的 RabbitMQ 服务器实例启用了铲子和铲子管理插件,我可以从我的 NodeJS 应用程序动态创建铲子吗?
我目前使用 amqplib 连接到交易所。https://www.squaremobius.net/amqp.node/channel_api.html
但是我没有看到任何 API 可以动态创建铲子。这是可以实现的还是有任何其他库支持这一点?
rabbitmq - RabbitMQ 持有队列
我想保留rabbitMQ队列,然后合并队列中先前暂停的事务。假设我有一个限制,只有 5 笔交易后我会继续。我想合并这 5 笔交易并确认 5 笔交易已完成的渠道。
node.js - 使用 amqplib 将消息发送到队列的奇怪低性能?
我正在尝试使用 amqp.node ( https://github.com/squaremo/amqp.node ) 测试 Rabbitmq 延迟。
这是消费者:
这是生产者:
然后我削弱了消费者的 3 个实例:
和3个生产者:
我得到:
每个生产者的第一条消息具有低延迟,但其他消息没有。
我可以做些什么来改善这一点吗?
rabbitmq - 如何更改 RabbitMq 的默认设置以持久化所有消息和队列(全局)
我知道我可以为每个队列指定持久设置,并为每条消息手动指定持久设置。但我正在寻找一种方法来更改默认行为,以便所有内容(队列、消息等)都将是持久的和持久的。
将此设置在代码的中心位置将比配置文件更好,但请分享所有方法而不是“通用函数”,因为我有很多地方直接使用 amqpapi。
有任何想法吗?
node.js - 节点 RabbitMQ 消费消息并为每条消息做一些事情
我想使用来自 rabbitmq 服务的消息,并且对于我收到的每条消息,我都想做一些事情(例如:将该消息放入数据库,处理消息并通过 RabbitMq 通过另一个队列发送回复)每条消息。
目前我的 RabbitMq 消费者代码如下: