Это просто. Если вы хотите, чтобы все подписчики получили копию сообщения, создайте несколько очередей с подстановочными знаками.
Предполагая, что у вас есть обмен темами, и вы публикуете все сообщения с ключом маршрутизации, таким как fred.interesting или fred.boring, тогда, если каждый подписчик объявляет очередь с ключом привязки fred. *, Тогда каждая очередь получит копия каждого сообщения. Единственная проблема заключается в том, как называть очереди, хотя RabbitMQ может генерировать уникальные имена для вас, если хотите.
Если бы я делал это, у меня был бы процесс супервизора, который запускает и контролирует процессы потребителя сообщений. Супервизор назначит каждому клиентскому процессу имя очереди, например fred0001, fred0002, и будет отслеживать, какие имена находятся в игре. Использование указанных имен, подобных этому, упрощает использование инструментов управления или написание сценариев управления и мониторинга.