Backend Development 16 min read

Message Queue Basics, Use Cases, and Selection Guide for Kafka, RabbitMQ, Pulsar, and RocketMQ

The article explains fundamental concepts, common use cases, and selection criteria for four popular message‑queue platforms—Kafka, RabbitMQ, Pulsar, and RocketMQ—detailing each system’s architecture, strengths, and drawbacks so readers can match workload, scalability, ordering, latency, and operational needs to the most suitable middleware.

Tencent Cloud Developer
Tencent Cloud Developer
Tencent Cloud Developer
Message Queue Basics, Use Cases, and Selection Guide for Kafka, RabbitMQ, Pulsar, and RocketMQ

Introduction

This article introduces the fundamental principles of four popular message queue middleware – Kafka, RabbitMQ, Pulsar, and RocketMQ – and provides a comparative guide for selecting the appropriate solution based on common requirements.

Message Queue Use Cases

Message queues are essential components in distributed systems for solving application coupling, asynchronous communication, and peak‑shaving. Typical scenarios include decoupling services, asynchronous processing, traffic smoothing, and event‑driven architectures.

Message Queue Patterns

Two main patterns are covered:

Point‑to‑point (P2P) – a message is consumed by only one consumer; duplicate consumption is prevented.

Publish/Subscribe (Pub/Sub) – multiple consumers can subscribe to the same topic and receive the same message.

Selection Criteria

When choosing a message queue, consider:

Message ordering guarantees.

Scalability and ability to expand or shrink the cluster.

Message retention after consumption.

Fault tolerance and data loss prevention.

Throughput and latency requirements.

Routing capabilities (topic, tag, key).

Kafka Overview

Kafka is an open‑source, high‑throughput, low‑latency streaming platform built on Scala and Java. Core concepts include Producer, Topic, Partition, Replicas, Consumer, Offset, and Broker. Advantages: high throughput, horizontal scalability, durability, and strong fault tolerance. Drawbacks: ordering only guaranteed per partition, no built‑in delayed messages, possible duplicate consumption, and consumer group rebalancing pauses.

RabbitMQ Overview

RabbitMQ implements the AMQP protocol and is written in Erlang. Key concepts are Broker, Virtual Host, Exchange (direct, fanout, topic), Queue, Binding, Connection, Channel, and Command. Advantages: AMQP compliance, robustness, active community, support for delayed messages, and rich authentication/authorization features. Drawbacks: Erlang codebase is hard to modify, and the protocol stack adds learning overhead.

Pulsar Overview

Apache Pulsar is a cloud‑native, distributed messaging and streaming platform with a compute‑storage separation architecture. Main components are Property, Namespace, Producer, Consumer, Broker (stateless proxy), BookKeeper (persistent storage), ZooKeeper (metadata), Topic, Ledger, and Fragment. Advantages: flexible scaling, seamless failover, built‑in delayed messages, geo‑replication, and support for both exclusive (stream) and shared (queue) consumption models. Drawbacks: operational complexity due to multiple services (Broker, BookKeeper, ZooKeeper).

RocketMQ Overview

RocketMQ, originally developed by Alibaba, is a high‑performance, low‑latency distributed messaging platform. Core concepts include Topic, Tag, Producer, Broker, Consumer, MessageQueue, NameServer, Group, and Offset. Advantages: support for both Pub/Sub and P2P, ordered queues, high message capacity, multiple protocol support (JMS, MQTT), horizontal scalability, at‑least‑once delivery, and rich monitoring dashboards. Drawbacks: relatively smaller community activity and limited delayed‑message precision in the open‑source version.

Conclusion

Kafka excels in high‑throughput streaming scenarios, RabbitMQ offers a feature‑rich, easy‑to‑use solution for moderate traffic, Pulsar provides cloud‑native flexibility with strong durability, and RocketMQ is tailored for financial‑grade reliability. Choose the middleware that best matches your workload characteristics, scalability needs, and operational preferences.

distributed systemsKafkaMessage QueueRabbitMQrocketmqMessagingPulsar
Tencent Cloud Developer
Written by

Tencent Cloud Developer

Official Tencent Cloud community account that brings together developers, shares practical tech insights, and fosters an influential tech exchange community.

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.