Мы используем https://github.com/php-amqplib/php-amqplib потреблять сообщения от rabbitmq. У нас есть несколько потребителей, которые работают без проблем. Сегодня мы обнаружили, что один из наших потребительских процессов потребляет около 7% ЦП хоста в режиме ожидания (без сообщений в очереди), тогда как остальные потребляют около 1% каждый.
Кроме того, при включении и выключении этого процесса мы видим большие изменения в загрузке ЦП нашей БД (экземпляр AWS RDS postgres). При работе 3 пользовательских процессов наша БД все время загружается на> 30% (даже если в очереди ничего нет).
У нас есть стандартная конфигурация Symfony, и наши потребители работают с использованием app/console rabbitmq:consumer -w consumer_name
, Насколько мы можем судить, у данного потребителя нет ничего особенного. У нас нет никаких подсказок, поэтому любая помощь будет высоко ценится.
больше деталей:
Когда мы включаем потребителя, мы видим, что один и тот же набор запросов выполняется на БД огромное количество раз (200 001 раз в течение 10 минут). В очереди нет неупакованных сообщений. В противном случае потребитель обрабатывает сообщения правильно. Запрос — это SELECT, который обычно выполняется как часть логики потребителя.
Задача ещё не решена.
Других решений пока нет …