Kafka as a streaming data platform is becoming the successor to traditional messaging systems such as RabbitMQ. Nevertheless, there are still some use cases where they could be a good fit. This one single slide tries to answer in a concise and unbiased way where to use Apache Kafka and where to use RabbitMQ. Your comments and feedback are much appreciated.
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
1. Apache Kafka vs RabbitMQ: Fit For Purpose/Decision Tree
Feature Kafka RabbitMQ
Need a durable message store and message replay capability Y N
Need ordered storage and delivery Y* N
Need multiple different consumer of same data Y N
Need to handle throughput of all my data well even at web scale and not a smaller set of messages Y N
Need a high throughput with low latency Y N
Need to decouple producers and consumers from a performance perspective to avoid the ’slow
consumer problem’
Y N
Need good integration with the Hadoop ecosystem and modern stream processing frameworks Y N
Need a good buffer for batch systems to scale well to large backlogs Y N
Need same tool for building data pipelines and streaming data applications without the help of
additional software.
Y N
Need support for multiple protocols: AMQP, STOMP, JMS, MQTT, HTTP, JSON-RPC, … N Y
Need message priority: producers can specify the priority of messages to consumers N Y
Need explicit delivery processing acknowledgements of messages from consumers N Y
Need flexible routing: producers direct messages to appropriate consumers N Y
Need transaction support: provide commit and rollback functionality for local transactions N Y
Need native tracing support to let me find out what's going on if things are misbehaving. N Y
Need a browser-based UI for management and monitoring of my message brokers. N Y
Need a self-sufficient message broker without additional tool such as Zookeeper N Y
*At partition level. By @SlimBaltagi from Advanced Analytics LLC