是否可以在分布式使用者的特定时间从队列中发送不超过N个消息?

时间:2013-07-13 18:23:55

标签: queue rabbitmq producer-consumer pika

我有一个从RabbitMQ读取消息的分布式系统。在我的情况下,我需要处理不超过N msgs / s。

例如:想象一下发送短信(SMS)的服务A。此服务只能处理100 msgs / s。我的系统有多个消费者从RabbitMQ读取数据。需要首先处理每条消息,然后将其发送到服务A。处理时间总是不同的。

所以问题是:

  • 是否可以将队列配置为向多个消费者发送不超过100 msgs / s的消息?

1 个答案:

答案 0 :(得分:2)

您可以使用qos方法的prefetch_size参数来限制消费者的吞吐量。

channel.basic_qos(100);

另请参阅:http://www.rabbitmq.com/blog/2012/05/11/some-queuing-theory-throughput-latency-and-bandwidth/