RabbitMQ
RabbitMQ is a message broker that implements the Advanced Message Queuing Protocol (AMQP).
Key Concepts
Core Components
- Producer: Application that sends messages
- Consumer: Application that receives messages
- Queue: Buffer that stores messages
- Exchange: Receives messages from producers and routes them to queues
- Binding: Relationship between exchange and queue
Exchange Types
- Direct: Routes messages based on exact routing key
- Topic: Routes messages based on wildcard matching
- Fanout: Broadcasts messages to all bound queues
- Headers: Routes based on message headers
Common Interview Questions
- What is the difference between RabbitMQ and Kafka?
- How does message acknowledgment work?
- Explain dead letter queues
- How to handle message persistence?
- What is the purpose of exchanges?
- How to implement pub/sub pattern?
- Explain message routing strategies
- How to handle message ordering?
- What are the different QoS levels?
- How to implement retry mechanisms?