Backend Development 6 min read

Message Queue Concepts and Consumption Scenarios

This article explains the core concepts of message queues—including producers, consumers, messages, brokers, and push/pull delivery—and analyzes three consumption scenarios: at‑most‑once, at‑least‑once, and exactly‑once, detailing the required producer, broker, and consumer behaviors for each.

Selected Java Interview Questions
Selected Java Interview Questions
Selected Java Interview Questions
Message Queue Concepts and Consumption Scenarios

1. Message Queue Concepts

A message queue is a common component in service architectures used for decoupling services, broadcasting events, and handling asynchronous or delayed tasks. Key concepts include:

Producer : generates and sends messages.

Consumer : receives and processes messages.

Message : the data transferred between applications, which can be simple text or complex objects.

Message Queue : a communication mechanism where the producer publishes messages to the queue without needing to know the consumer, and the consumer retrieves messages without needing to know the producer.

Message Broker : stores and forwards messages, supporting both push (broker pushes to consumer) and pull (consumer pulls from broker) models.

2. Message Queue Consumption Scenarios

1. Message consumed at most once

This is the simplest scenario. The producer sends messages without requiring acknowledgment from the broker, the broker does not guarantee persistence, and the consumer can delete the message after retrieval without confirming successful processing. It tolerates lost or duplicate messages.

2. Message consumed at least once

Suitable for tasks that cannot tolerate loss but can handle duplicates. The producer must receive an acknowledgment from the broker, the broker provides persistence, and the consumer must explicitly acknowledge before the broker deletes the message, ensuring the message is delivered at least once.

3. Message consumed exactly once

Used for high‑reliability requirements and involves two sub‑scenarios:

a) Broker‑side exactly‑once

The broker stores messages with a unique identifier (generated by the producer or the broker) and guarantees persistence. The consumer records the identifier of each processed message to prevent re‑processing if a failure occurs before deletion.

b) Producer‑side exactly‑once

The producer generates a unique identifier for each message and the broker must acknowledge receipt and provide persistence. The consumer, similarly, tracks the identifier to avoid duplicate processing, ensuring each message is handled only once.

These scenarios illustrate how different reliability guarantees affect the design of producers, brokers, and consumers in distributed systems.

Message QueueReliabilityConsumerproducerexactly-onceMessage Broker
Selected Java Interview Questions
Written by

Selected Java Interview Questions

A professional Java tech channel sharing common knowledge to help developers fill gaps. Follow us!

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.