Comparing Kafka, RabbitMQ, and RocketMQ
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. |
Similar to Kafka. |
Transactional messages |
Supported |
Supported |
Supported |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.