RabbitMQ's Exchange-to-Exchange binding
Tweetin programming · Wed 30 April 2014
in programming · Wed 30 April 2014
I'm a long time user of RabbitMQ for different type of tasks like chat system, worker queue, logging etc. But lately I was looking for an option to track all messages passing through set of exchanges without interfering those exchanges. The need for it's that I want to analyze the messages passing in those exchanges. For that case Exchange-to-Queue binding is not enough for me, Because on that case I have to create one queue for each exchange available on the server.I want to avoid this. Then I came across this interesting RabbitMQ extension feature ( It's not there in the AMQP standard yet) which allow you to bind Exchange-to-Exchange.
So using this exchange-to-exchange binding I can create a dummy exchange and bind it with those exchanges that I'm instead in. The routing keys used with the queue binding is applicable while binding the exchanges together. The messages are routed to the other binded exchanges by applying those routing keys. And obviously I created a dummy queue to persist those messages coming on the dummy exchange.
By this way my external monitoring and quality checking code only monitor the dummy queue for the messages and it consumes and discard it from the queue. By the way this setup is not for permanent use.
I'm using this method to do the following things.
Here is the simple diagram showing the exchange-to-exchange binding. The orange lines showing the exchange-to-exchange binding.
Thank you.
Go Top