我有一个从RabbitMQ读取消息的分布式系统。在我的情况下,我需要处理不超过N msgs / s。
例如:想象一下发送短信(SMS)的服务A
。此服务只能处理100 msgs / s。我的系统有多个消费者从RabbitMQ读取数据。需要首先处理每条消息,然后将其发送到服务A
。处理时间总是不同的。
所以问题是:
答案 0 :(得分:2)
您可以使用qos方法的prefetch_size
参数来限制消费者的吞吐量。
channel.basic_qos(100);
另请参阅:http://www.rabbitmq.com/blog/2012/05/11/some-queuing-theory-throughput-latency-and-bandwidth/