我有一个从 RabbitMQ 读取消息的分布式系统。在我现在的情况下,我需要处理不超过 N msgs/s。
例如:想象一下A
发送短信 (SMS) 的服务。该服务只能处理 100 msgs/s。我的系统有多个从 RabbitMQ 读取数据的消费者。每条消息都需要先处理,然后发送到服务A
。处理时间总是不同的。
所以问题:
- 是否可以将队列配置为向多个消费者分派不超过 100 msgs/s 的速度?
我有一个从 RabbitMQ 读取消息的分布式系统。在我现在的情况下,我需要处理不超过 N msgs/s。
例如:想象一下A
发送短信 (SMS) 的服务。该服务只能处理 100 msgs/s。我的系统有多个从 RabbitMQ 读取数据的消费者。每条消息都需要先处理,然后发送到服务A
。处理时间总是不同的。
所以问题:
您可以使用qosprefetch_size
方法的参数来限制消费者的吞吐量。
channel.basic_qos(100);
另见:http ://www.rabbitmq.com/blog/2012/05/11/some-queuing-theory-throughput-latency-and-bandwidth/