gpt4 book ai didi

javascript - 如何使用 AMQP/Node 每秒处理 >100 条消息

转载 作者:行者123 更新时间:2023-11-30 21:01:38 25 4
gpt4 key购买 nike

我们目前正在制作一个微服务原型(prototype)(Node v8.3.0),它必须在 RabbitMQ(RabbitMQ 3.6.12,Erlang 19.2.1)上每秒消耗大约 60-150 条消息。有时它就像一个魅力,队列中没有剩余的消息。但大多数情况下,消息会卡住,每秒只能处理 5-20 条消息,并在队列中累积多达 3M 条消息。

现在我们真的很好奇如何用一个消费者处理所有这些消息。因为已经有一些 Java 消费者在没有任何延迟的情况下处理所有这些消息。我们使用 this node library基于 amqplib .此外,处理程序会立即确认传入的消息——业务逻辑是绝对异步的。因此,即使没有任何业务逻辑,它也会卡住。交换器的类型是topic,它不是durable 并且队列启用了auto-deleting 功能。我们尝试禁用预取,prefetch = 1100,但没有成功。

所以..

1) 您使用哪个 Node 的 AMQP/RabbitMQ 库?
2) 每秒处理多少消息?
3)任何进一步的改进/建议?

谢谢!

最佳答案

RabbitMQ 团队监控this mailing list并且只是有时回答有关 stackoverflow 的问题。

您的 Java 使用者可以正常工作这一事实表明,amqplib-easyamqplib 或您的代码是罪魁祸首。另外,请注意,在 RabbitMQ 中使用单个队列是一种反模式,因为队列是代理中的并发单位。

我整理了一个 test project其中包括关于使用 RabbitMQ PerfTest 应用程序 (Java) 运行 Node 消费者的 README。您应该熟悉 PerfTest,因为它提供了许多用于评估环境性能的功能。

在我的测试环境中,我可以轻松维持 4096msg/sec 的发布速率。如果我将其增加到 8192,由于 Node 应用程序的消费速度不够快,我可以看到备份的消息。使用“普通”amqplib 进行比较会很有趣。

关于javascript - 如何使用 AMQP/Node 每秒处理 >100 条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47081053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com