我们正在使用https://github.com/php-amqplib/php-amqplib来消费来自rabbitmq的消息。我们有几个消费者幸福地运行,没有任何问题。今天我们发现我们的一个消费者进程在空闲时消耗了大约7%的主机CPU(队列中没有消息),而其余消耗大约占1%。
最重要的是,当打开和关闭此过程时,我们会看到我们的数据库(AWS RDS postgres实例)的CPU利用率发生了很大变化。运行3个消费者进程时,我们的数据库始终处于> 30%的CPU利用率(即使队列中没有任何内容)。
我们已经获得了标准的symfony配置,我们的消费者使用app/console rabbitmq:consumer -w consumer_name
运行。据我们所知,有问题的消费者并没有什么特别之处。我们完全没有线索,所以任何帮助都将非常感激。
更多详情:
当我们打开消费者时,我们可以看到在db上运行大量次数的同一组查询(在10分钟的空间内200001次)。队列中没有未包装的消息。消费者否则正确处理消息。查询是一个SELECT,它将作为消费者逻辑的一部分正常运行。