It's simple. If you want all subscribers to receive a copy of the message, create multiple queues with substitution binding.
Assuming you have a topic exchange and you post all messages using a routing key like fred.interesting or fred.boring, then if each subscriber declares a queue with a fred binding key. *, then each queue will receive a copy of each message. The only problem is how to name the queues, although RabbitMQ can generate unique names for you.
If I did this, I would have a supervisor process that starts and controls the message processing processes. The supervisor gives each consumer process a queue name, such as fred0001, fred0002, and keeps track of which names are in the game. Using specified names like this makes it easier to use management tools or recording management and monitoring scripts.
source share