Friday, January 2, 2015

Kafka vs. RabbitMQ vs. ActiveMQ

  1. Web Search
  2. Producer Test
    1. Result
    2. Reason
      1. Kafka producer doesn’t wait for acknowledgements from the broker and sends messages as faster as the broker can handle
      2. Kafka has a more efficient storage format. On average, each message had an overhead of 9 bytes in Kafka, versus 144 bytes in ActiveMQ. This is because of overhead of heavy message header, required by JMS and overhead of maintaining various indexing structures. LinkedIn observed that one of the busiest threads in ActiveMQ spent most of its time accessing a B-Tree to maintain message metadata and state

  3. Consumer Test
    1. Result
    2. Reason
      1. Kafka has a more efficient storage format; fewer bytes were transferred from the broker to the consumer in Kafka
      2. The broker in both ActiveMQ and RabbitMQ containers had to maintain the delivery state of every message. LinkedIn team observed that one of the ActiveMQ threads was busy writing KahaDB pages to disks during this test. In contrast, there were no disk write activities on the Kafka broker. Finally, by using the sendfile API, Kafka reduces the transmission overhead
  4. Reference

    1. http://www.infoq.com/articles/apache-kafka
    2. http://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.