I am working on Apache Kafka. I want to know which one is better: Kafka or ActiveMQ. What is the main difference between this two technolo
I think one thing that should be noted in a discussion about which brokers to use (and when Kafka comes up) is that the Kafka benchmark that is frequently referenced shows the upper limit of any modern distributed computer. Today's brokers all have about the same total capacity in MB/s. Kafka does extremely well with small messages (10-1024 bytes) when compared to other brokers, but still limits out at around the ~75 Mb/s mark (per-broker).
There is frequently an apples-to-oranges comparison esp when talking "clustering". ActiveMQ and other enterprise brokers cluster the publishing of messages and the tracking of consumer subscriptions. Kafka clusters the publishing and requires the consumer to track subscription. Seems minimal, but its a significant difference.
All brokers have the same back pressure issues-- Kafka can do a "LAZY PERSISTENCE" where the producer isn't waiting around for the broker to sync to disk.. this is good for a lot of use cases, but probably not the I-care-about-every-single-message scenario ppatierno mentions in his slide show.
Kafka really good for horizontal scaling for things like big data processing of small messages. ActiveMQ is more ideal for the class of use case frequently referred to as enterprise messaging (this is just a term, doesn't mean Kafka isn't good for the enterprise)-- transacted data (although Kafka is adding this).. kiosk.. retail store.. store and forward.. dmz traversal.. data center-to-data center publishing.. etc