Comparing RocketMQ, Kafka, and RabbitMQ
| Feature | RocketMQ | Kafka | RabbitMQ |
|---|---|---|---|
| Priority queue | Not supported | Not supported |
|
| Delayed queue | Supported | Not supported |
|
| Dead letter queue | Supported | Not supported | Supported |
| Message retry | 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. |
|
| Message accumulation | Supported | Supports higher accumulation performance than RabbitMQ thanks to high throughput. | Supported |
| Persistence | Supported | Supported | Supported |
| Message tracing | Supported | Not supported |
|
| Message filtering | Supported | Supported |
|
| Multi-tenancy | Supported | Supported | Supported |
| Multi-protocol | Compatible with RocketMQ. | Only supports Apache Kafka. | RabbitMQ is based on AMQP. |
| Multi-language | Supports clients in multiple programming languages. | Kafka is written in Scala and Java and supports clients in multiple programming languages. | Supports clients in multiple programming languages. |
| Throttling | RocketMQ 5.x supports traffic control based on instance specifications. | Supports throttling on producer or consumer clients, users, and topics. | 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. | 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. |
|
| Transactional messages | Supported | Supported |
|