Вы можете настроить пул слушателей очереди на наличие одного потока, поэтому не более одного слушателя обрабатывает запросы, но для меня это не имеет смысла.
Правильный ответ - настроить размер пула потоков, чтобы сбалансировать производительность с требованиями к памяти.
Много тысяч? В секунду, в минуту, в час? Скорость, с которой они прибывают, и время, которое занимает каждая задача, имеют решающее значение. Сколько времени, памяти, процессора на запрос? Убедитесь, что вы сконфигурировали свою очередь для обработки того, что может быть довольно большим отставанием.
ОБНОВЛЕНИЕ: Если в секунду поступает десять сообщений, и одному обработчику требуется 10 секунд, чтобы обработать сообщение, тогда вам потребуется 101 поток прослушивателей, чтобы иметь возможность не отставать. (10 сообщений в секунду * 10 секунд означает, что к тому времени, когда первый слушатель завершит свою 10-секундную задачу, поступит 100 сообщений. 101-й слушатель обработает 101-е сообщение, а последующие слушатели завершат работу вовремя.) Если вам нужно 1 МБ ОЗУ на слушателя, вам потребуется 101 МБ ОЗУ только для обработки всех сообщений на одном сервере. Вам понадобится аналогичная оценка и для процессора.
Может быть, стоит подумать о нескольких очередях на нескольких серверах и распределении нагрузки между ними, если одного сервера недостаточно.