Skip to content
JackSparrow414

RabbitMQ and Spring AMQP

Messaging models, reliability, JSON messages, and delayed queues.

5 posts · In reading order

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.