php - 如何在单个连接上管理 RabbitMQ 消费者(管理服务器负载)
问题描述
我有一个为我的每个客户创建队列的应用程序。每个队列都有自己的消费者来顺序处理消息。收到消息后,回调的处理可能会占用大量资源。我想防止我的服务器的峰值负载,所以我想实现预取。
据我了解,可以为每个通道设置预取,以限制飞行中消息的总数量。这看起来是控制我的所有客户同时处理的消息总数的好方法。
我目前遇到的唯一困难是如何在频道收听时添加(或删除)消费者($channel->wait()
)。
我正在使用 PHP 脚本来监控我的客户、将消息发送到正确的队列以及管理我的消费者。但是一旦一个频道正在等待,我不确定修改它的消费者的最佳方式。
附言。也可能是我错误地处理了问题,并且可以以另一种方式管理集体消费者负载
解决方案
推荐阅读
- android - 配置其他库使用的 OkHttpClient 实例
- rest - 如何为 HTTP PUT/POST 方法运行/配置 Jmeter。如何在 jmeter 有效负载中设置动态数据以避免数据库重复约束错误
- linux - zsh:找不到命令;表示
- xamarin - 如何在 Xamarin 更新后触发一次代码
- swift - 以编程方式测试视图约束(在单元测试中)
- php - 使用 PHP 访问远程服务器的目录
- c# - 合并 JSON 文件 (Newtonsoft.Json.JsonReaderException)
- c# - 将非托管本机库文件包括到 nuget 输出目录
- javascript - 为什么indexedDB在chrome中打开数据库后很长时间触发onsuccess
- bash - 将时间戳附加到 grep 输出