The Management plugin provides a web interface available at http://localhost:15672/#/
Command - start server
- Used to distribute tasks between multiple workers.
- Round robin dispatching
- Message acknowledgement
- Message durability
- Fair dispatch
A producer never send messages to queues in RabbitMQ, it sends them to an Exchange and the exchange sends the messages to a queue (bindings).
Message goes to the queue whose binding key exactly matches the routing key of the message.
Direct exchanges and bindings does not allow us to do routing based on multiple criteria.
The binding is the relationship between the exchange and the queue.
Command - define binding
Command - list bindings
Command - specify extra routingKey parameter
How a demo might look like
- producer: web api which pushes messages to RabbitMQ
- consumer0: validates the message and sends the message in the processing pipeline
- consumer1: c1 logic and based on the result moves the message to c2 or success queue
- consumer2: c2 logic and moves message to success queue or fail queue
- use a Smart Proxy or a Control Bus for system monitoring
Sample base consumer
Initializes connection to Rabbit MQ, receives message, fires of event for message processing and publishes another message.