Для начала вам нужно использовать topic
обмен и публиковать ваши сообщения с разными ключами маршрутизации для каждой очереди. Волшебство происходит, когда потребитель связывает очередь с помощью связывающего ключа (или шаблона для сопоставления). Некоторые потребители просто используют ключи маршрутизации в качестве связующего ключа. Но второй набор будет использовать шаблон подстановки для своего связующего ключа.
Для Случай 1 необходимо создать очередь для каждого потребителя и связать каждую очередь соответствующим ключом маршрутизации.
Для Случай 2 , просто создайте одну очередь с ключом маршрутизации #
и пусть каждый из ваших рабочих-потребителей потребляет из этого. Брокер отправит рабочим круговым способом.
Вот скриншот того, как это будет выглядеть в RabbitMQ. В этом примере есть два потребителя из вашего «дела 1» (Foo и Bar) и одна очередь для всех работников, чтобы удовлетворить «дело 2».
Эта модель должна поддерживаться всеми AMQP-совместимыми брокерами и не требует каких-либо улучшений для конкретного поставщика.