Есть ли способ, с помощью которого мы можем ограничить очередь RabbitMQ для отправки только фиксированного количества сообщений из очереди потребителям?
У меня есть 2 очереди Q1 и Q2 и 10 потребителей. Каждый потребитель может обрабатывать сообщения из Q1 и Q2. В любой момент времени только 2 потребителя должны обрабатывать сообщения из Q2.Все 10 потребителей могут обрабатывать сообщения отQ1 одновременно.
Существует ли какая-либо конфигурация в RabbitMQ, которую мы можем указать, чтобы RabbitMQ отправлял только 2 сообщения из Q2 любому свободному потребителю и передавал следующие 2 только после того, как они были подтверждены, даже если другие потребители свободны и готовы кпотреблять.
Дополнительные сведения о проблеме:
Почему обрабатывается только 2 сообщения одновременно?: Сообщения Q2 выполняют вызов веб-службы, и конечная точка веб-службы (третье лицо) может одновременно обслуживать только 2 сообщения.
Не можем ли мы использовать параллелизм?: Если мы используем ListenerContainer (Spring AMQP), контейнер для каждого потребителя.Мы можем ограничить количество сообщений, которое может принимать один потребитель за один раз, но если у нас есть 10 потребителей, если в очереди есть сообщения, каждый потребитель получит свою долю.
Можем ли мы настроить только 2 потребителей, слушающихQ2?Я понимаю, что мы можем добиться этого, настроив только 2 потребителей для Q2, но я пытаюсь избежать этого.Если по каким-либо причинам эти 2 потребителя отключатся, обработка Q2 будет остановлена.Если сконфигурировано 10 потребителей, мы можем гарантировать, что обработка будет происходить до тех пор, пока не отключится последний потребитель.
Посмотрим, есть ли какая-либо конфигурация в RabbitMQ, которую мы можем использовать, или любое предлагаемое решение.
Заранее спасибо!