我需要限制从rabbitmq队列中消费消息的速率.
我发现了很多建议,但大多数都提供了使用预取选项.但是这个选项不能满足我的需要.即使我将预取设置为1,速率也是大约6000条消息/秒.这对消费者来说太多了.
我需要限制每秒大约70到200条消息.这意味着每5-14ms消耗一条消息.没有同步消息.
我正在使用带有amqp.node库的Node.JS.
使用rabbitmq中的示例,consumer一次从队列中获取所有消息.如何使用一条消息并退出?
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer);
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
Run Code Online (Sandbox Code Playgroud)