Updated on 2024-04-08 GMT+08:00

Comparing RocketMQ, Kafka, and RabbitMQ

Table 1 Functions

Feature

RocketMQ

Kafka

RabbitMQ

Priority queue

Not supported

Not supported

Supported. It is recommended that the priority be set to 0–10.

Delayed queue

Supported

Not supported

Supported

Dead letter queue

Supported

Not supported

Supported

Message retry

Supported

Not supported

Not supported

Retrieval mode

Pull-based and push-based

Pull-based

Pull-based and push-based

Message broadcasting

Supported

Supported

Supported

Message tracking

Supported

Supports offset and timestamp tracking.

Not supported. Once a message retrieval has been acknowledged, RabbitMQ will be notified that the message can be deleted.

Message accumulation

Supported

Supports higher accumulation performance than RabbitMQ thanks to high throughput.

Supported

Persistence

Supported

Supported

Supported

Message tracing

Supported

Not supported

Supported

by the firehose feature or the rabbitmq_tracing plugin. However, rabbitmq_tracing reduces performance and should be used only for troubleshooting.

Message filtering

Supported

Supported

Not supported, but can be encapsulated.

Multi-tenancy

Supported

Not supported

Supported

Multi-protocol

Compatible with RocketMQ.

Only supports Apache Kafka.

RabbitMQ is based on AMQP and supports MQTT and STOMP.

Multi-language

Supports clients in multiple programming languages.

Kafka is written in Scala and Java and supports clients in multiple programming languages.

RabbitMQ is written in Erlang and supports clients in multiple programming languages.

Throttling

Planned

Supports throttling on producer or consumer clients.

Supports credit-based throttling on producers, a mechanism that triggers protection from within.

Ordered message delivery

Message order is maintained within a queue.

Supports partition-level FIFO.

Not supported. Supports FIFO only for single-threaded message queuing without advanced features such as delayed queues or priority queues.

Security

Supports SSL authentication.

Supports SSL and SASL authentication and read/write permissions control.

Supports SSL.

Transactional messages

Supported

Supported

Supported