Integration / RabbitMQ Interview Questions
Explain the internal working of the RabbitMQ shovel plugin?
The shovel plugin runs a small, resilient client inside (or alongside) RabbitMQ that behaves like a well-behaved consumer on one broker and a well-behaved producer on another, continuously moving messages between them.
- It opens its own AMQP connection to a source broker/queue and consumes messages from it with manual acknowledgment.
- For each message received, it republishes that message to a configured destination exchange (possibly on a completely different broker or cluster).
- Only after the destination confirms the publish does the shovel acknowledge the original message back to the source, so a failure mid-transfer results in redelivery rather than data loss.
- It automatically reconnects and resumes if either side's connection drops.
Shovels can be configured statically (in config files) or dynamically (via the management API/UI), and they are commonly used for one-off migrations, bridging on-prem and cloud clusters, or moving a specific queue's traffic without wiring up full federation.
More Related questions...