С помощью AMQP вы публикуете сообщения на Exchange и используете сообщения из очереди. Не беспокойтесь о том, что означает «очередь» в других технологиях обмена сообщениями.
Мне кажется, что ваш сценарий может быть легко обработан с помощью обмена темами. Публиковать сообщения с ключами маршрутизации, такими как cat.silly, cat.older, cat.интересный Затем попросите потребителей объявить очередь, используя ключ привязки cat. *
Таким образом, все сообщения, опубликованные на бирже с любым префиксом, будут скопированы в очередь из-за подстановочного знака в ключе привязки. Если ваши потребители на самом деле используют циклический обмен, то есть сообщения не должны копироваться в несколько очередей, просто попросите всех потребителей использовать одно и то же имя очереди. Если каждый потребитель использует одно и то же имя очереди, вы можете скомпилировать его в свой код и не беспокоиться о его названии. Но когда вы хотите отладить поток сообщений, просто создайте получателя, который подписывается на очередь с именем catdebug с тем же ключом привязки, cat. *
Но если каждый потребитель специализируется и хочет выбирать, какие сообщения обрабатывать, тогда пусть каждый потребитель использует уникальное имя очереди. Таким образом, каждый потребитель увидит копию каждого сообщения.
Обмен темами - лучшее решение, которое стоит попробовать в первую очередь, потому что семантика прямого и разветвленного обмена может быть легко эмулирована.