RabbitMQ and Spring AMQP
Messaging models, reliability, JSON messages, and delayed queues.
5 posts · In reading order
Learning RabbitMQ and Spring AMQP (Part 1)
This article explains how producers, exchanges, routing keys, bindings, and queues relate in RabbitMQ and demonstrates virtual-host configuration and publishing from the management console. Spring AMQP examples connect exchange declarations, queue bindings, consumer listeners, and producer publishing into a basic workflow.
Learning RabbitMQ and Spring AMQP (Part 2): Messaging Models and the Startup Process
Explains RabbitMQ brokers, connections, and channels, comparing the native Java client with Spring AMQP. It covers producer and consumer configuration responsibilities and pooled channel reuse, then traces listener registration, component declarations, and consumer startup through the source code.
RabbitMQ and Spring AMQP (Part 3): Message Reliability
Message delivery, storage, and consumption introduce publisher confirms, returned messages, durable components, and message persistence in Spring AMQP. The article demonstrates manual consumer acknowledgments, rejection, and requeuing, and explains why persistence can still leave a risk of message loss.
Learning RabbitMQ and Spring AMQP (Part 4): JSON Message Bodies
Explains how to pass Java objects as JSON in RabbitMQ and Spring AMQP by configuring message converters on the producer and consumer. Examples cover object serialization, Content-Type and timestamp settings, and mapping received messages to Java entities with @Payload.
Learning RabbitMQ and Spring AMQP (Part 5): Delayed Queues
Uses scenarios such as scheduled assignment publication to explain delayed messages and implements them with the RabbitMQ delayed-message plugin. It demonstrates plugin installation, declaring a delayed exchange, and setting message delays, compares Java Client and Spring AMQP code, and verifies the result through send and receive times.