RabbitMQ Course
Route, acknowledge, retry and dead-letter messages on purpose - and know when Kafka is the better answer.
Take this course in the learning hubLessons
- What a message broker actually buys youA broker trades a synchronous answer for decoupled uptime, load levelling and retries.
- Exchanges, bindings and queues: how a message finds a queuePublishers address exchanges, never queues, and bindings decide where a message lands.
- Direct, topic, fanout and headersFour routing rules, and the routing key syntax that decides which queues get a copy.
- Acknowledgements: auto-ack is a data-loss switchManual ack is what makes at-least-once delivery real, and it changes the states a message can be in.
- Work queues, competing consumers and prefetchPrefetch is the one setting that decides whether adding consumers actually adds throughput.
- Durability: what actually survives a broker restartDurable queues, persistent messages and publisher confirms each protect a different failure.
- Publisher confirms and returnsA successful basicPublish call proves nothing; confirms and returns are what tell you the truth.
- Dead letter exchanges, TTL and retry with backoffA dead letter exchange plus a TTL queue is how you build delayed retry without any plugin.
- The poison message problemOne message that can never succeed will saturate a consumer forever unless you count attempts.
- Request-reply over a queuereply-to and correlation-id turn two one-way messages into a request-response call.
- Clustering, mirrored queues and quorum queuesA classic queue lives on one node; quorum queues replicate it with Raft, and mirroring is gone.
- Running it: the management UI, alarms and flow controlReady versus Unacked, plus the two resource alarms, explain nearly every RabbitMQ incident.
- Spring AMQP in a Spring Boot serviceThe starter wires everything, and the one default that surprises people is what AUTO means.
- RabbitMQ vs Kafka: choosing honestlyA broker that routes and forgets versus a log that retains - the difference decides the choice.
- Flow control, memory alarms and the queue that eats the brokerRabbitMQ holds messages in memory until it cannot - then it blocks publishers.