首页 > 解决方案 > 如何在单个连接上管理 RabbitMQ 消费者(管理服务器负载)

问题描述

我有一个为我的每个客户创建队列的应用程序。每个队列都有自己的消费者来顺序处理消息。收到消息后,回调的处理可能会占用大量资源。我想防止我的服务器的峰值负载,所以我想实现预取。

据我了解,可以为每个通道设置预取,以限制飞行中消息的总数量。这看起来是控制我的所有客户同时处理的消息总数的好方法。

我目前遇到的唯一困难是如何在频道收听时添加(或删除)消费者($channel->wait())。

我正在使用 PHP 脚本来监控我的客户、将消息发送到正确的队列以及管理我的消费者。但是一旦一个频道正在等待,我不确定修改它的消费者的最佳方式。

附言。也可能是我错误地处理了问题,并且可以以另一种方式管理集体消费者负载

标签: phprabbitmq

解决方案


推荐阅读