gpt4 book ai didi

node.js - 使用 Node.JS 的 amqplib 控制 RabbitMQ 消费者的消耗率

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:12 26 4
gpt4 key购买 nike

我的应用程序使用 RabbitMQ 队列来存储消息,然后我有一个工作人员使用这些消息并将它们插入数据库中。目的不是在工作负载高峰时给数据库带来压力。我遇到的问题是,在那些峰值中,队列的发布率非常高,并且工作线程开始每秒接收的消息多于它可以处理的消息,直到崩溃。

有什么方法可以控制消费率,以便我可以确保工作人员接收消息的速度不会快于消费消息的速度?消息并不重要,因此我不介意它们在队列中停留多长时间直到工作人员可以处理它们。

我正在使用 Node.JS 的 amqplib,这是我用于工作线程的代码:

open.then(function(conn) {
var ok = conn.createChannel();
ok = ok.then(function(ch) {
ch.assertQueue(q);
ch.consume(q, function(msg) {
if (msg !== null) {
message = JSON.parse(msg.content.toString());
processMessage(message);
}
}, {noAck: true});
});
return ok;
}).then(null, console.warn);

最佳答案

听起来您正在 consume 函数中查找 prefetch_count

欲了解更多信息,请访问:http://www.rabbitmq.com/consumer-prefetch.html

关于node.js - 使用 Node.JS 的 amqplib 控制 RabbitMQ 消费者的消耗率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817404/

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