RabbitMQ vs. Kafka vs. ActiveMQ



RabbitMQ vs Kafka vs ActiveMQ: What are the differences?

RabbitMQ, Kafka, and ActiveMQ are all messaging technologies used to provide asynchronous communication and decouple processes (detaching the sender and receiver of a message). They are called message queues, message brokers, or messaging tools. RabbitMQ, Kafka, and ActiveMQ all serve the same basic purpose, but can go about their jobs differently. Kafka is a high-throughput distributed messaging system. RabbitMQ is an AMQP based reliable message broker. ActiveMQ and Kafka are both Apache products, and both written in Java; RabbitMQ is written in Erlang.

Hacker News, Reddit, Stack Overflow Stats

  • 402
  • 325
  • 9.01K
  • -
  • 35
  • 0
  • -
  • 48
  • 4.81K

GitHub Stats

Description

What is RabbitMQ?

RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

What is Kafka?

Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.

What is ActiveMQ?

Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.

Want advice about which of these to choose?Ask the StackShare community!

Pros

Why do developers choose RabbitMQ?
Why do you like RabbitMQ?

Why do developers choose Kafka?
Why do you like Kafka?

Why do developers choose ActiveMQ?
Why do you like ActiveMQ?

Cons

What are the cons of using RabbitMQ?
Downsides of RabbitMQ?

What are the cons of using Kafka?
Downsides of Kafka?

What are the cons of using ActiveMQ?
No Cons submitted yet for ActiveMQ
Downsides of ActiveMQ?

Why do developers choose RabbitMQ vs Kafka vs ActiveMQ?

  • Users of RabbitMQ say it’s fast, easy to configure, and intuitive.
  • Fans of Kafka cite its scalability, high performance, and high-throughput abilities.
  • ActiveMQ users call it efficient and easy to use, and celebrate its open source roots.

Companies

What companies use RabbitMQ?
1049 companies on StackShare use RabbitMQ
What companies use Kafka?
526 companies on StackShare use Kafka
What companies use ActiveMQ?
41 companies on StackShare use ActiveMQ

Integrations

What tools integrate with RabbitMQ?
15 tools on StackShare integrate with RabbitMQ
What tools integrate with Kafka?
26 tools on StackShare integrate with Kafka
What tools integrate with ActiveMQ?
4 tools on StackShare integrate with ActiveMQ

What are some alternatives to RabbitMQ, Kafka, and ActiveMQ?

  • Celery - Distributed task queue
  • Amazon SQS - Fully managed message queuing service
  • ZeroMQ - Fast, lightweight messaging library that allows you to design complex communication system without much effort
  • NSQ - A realtime distributed messaging platform

See all alternatives to RabbitMQ

Latest News

Spring Messaging Projects Maintenance Releases - Int...
Containerizing a Data Ingest Pipeline: Making the JV...
Kafka Streams on Heroku
Related Stack Decisions
Adam Rabinovitch
Adam Rabinovitch
Senior Technical Recruiter & Engineering Evangelist at Beamery · | 2 upvotes · 3307 views
atBeamery
Kafka
Redis
Elasticsearch
MongoDB
RabbitMQ
Go
Node.js
Kubernetes
#Microservices

Beamery runs a #microservices architecture in the backend on top of Google Cloud with Kubernetes There are a 100+ different microservice split between Node.js and Go . Data flows between the microservices over REST and gRPC and passes through Kafka RabbitMQ as a message bus. Beamery stores data in MongoDB with near-realtime replication to Elasticsearch . In addition, Beamery uses Redis for various memory-optimized tasks.

See more
Conor Myhrvold
Conor Myhrvold
Tech Brand Mgr, Office of CTO at Uber · | 2 upvotes · 10409 views
atUber Technologies
Kafka Manager
Kafka
GitHub
Apache Spark
Hadoop

Why we built Marmaray, an open source generic data ingestion and dispersal framework and library for Apache Hadoop :

Built and designed by our Hadoop Platform team, Marmaray is a plug-in-based framework built on top of the Hadoop ecosystem. Users can add support to ingest data from any source and disperse to any sink leveraging the use of Apache Spark . The name, Marmaray, comes from a tunnel in Turkey connecting Europe and Asia. Similarly, we envisioned Marmaray within Uber as a pipeline connecting data from any source to any sink depending on customer preference:

https://eng.uber.com/marmaray-hadoop-ingestion-open-source/

(Direct GitHub repo: https://github.com/uber/marmaray Kafka Kafka Manager )

See more
James Cunningham
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 2651 views
atSentry
RabbitMQ
Celery
#MessageQueue

As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

#MessageQueue

See more


Interest Over Time