ActiveMQ聽vs聽RabbitMQ聽vs聽ZeroMQ

Need advice about which tool to choose?Ask the StackShare community!

ActiveMQ

414
1K
+ 1
72
RabbitMQ

13.3K
11.4K
+ 1
511
ZeroMQ

210
455
+ 1
68
Advice on ActiveMQ, RabbitMQ, and ZeroMQ
Pulkit Sapra
Needs advice
on
RabbitMQ
Kubernetes
and
Amazon SQS

Hi! I am creating a scraping system in Django, which involves long running tasks between 1 minute & 1 Day. As I am new to Message Brokers and Task Queues, I need advice on which architecture to use for my system. ( Amazon SQS, RabbitMQ, or Celery). The system should be autoscalable using Kubernetes(K8) based on the number of pending tasks in the queue.

See more
Replies (1)
Anis Zehani
Recommends
Kafka

Hello, i highly recommend Apache Kafka, to me it's the best. You can deploy it in cluster mode inside K8S, thus you can have a Highly available system (also auto scalable).

Good luck

See more
Needs advice
on
RabbitMQ
and
Celery

I am just a beginner at these two technologies.

Problem statement: I am getting lakh of users from the sequel server for whom I need to create caches in MongoDB by making different REST API requests.

Here these users can be treated as messages. Each REST API request is a task.

I am confused about whether I should go for RabbitMQ alone or Celery.

If I have to go with RabbitMQ, I prefer to use python with Pika module. But the challenge with Pika is, it is not thread-safe. So I am not finding a way to execute a lakh of API requests in parallel using multiple threads using Pika.

If I have to go with Celery, I don't know how I can achieve better scalability in executing these API requests in parallel.

See more
Replies (1)
Recommends
Redis
rq

For large amounts of small tasks and caches I have had good luck with Redis and RQ. I have not personally used celery but I am fairly sure it would scale well, and I have not used RabbitMQ for anything besides communication between services. If you prefer python my suggestions should feel comfortable.

Sorry I do not have a more information

See more
Meili Triantafyllidi
Software engineer at Digital Science | 5 upvotes 路 103.2K views
Needs advice
on
ZeroMQ
RabbitMQ
and
Amazon SQS

Hi, we are in a ZMQ set up in a push/pull pattern, and we currently start to have more traffic and cases that the service is unavailable or stuck. We want to: * Not loose messages in services outages * Safely restart service without losing messages (ZeroMQ seems to need to close the socket in the receiver before restart manually)

Do you have experience with this setup with ZeroMQ? Would you suggest RabbitMQ or Amazon SQS (we are in AWS setup) instead? Something else?

Thank you for your time

See more
Replies (1)
Shishir Pandey
Recommends
RabbitMQ

ZeroMQ is fast but you need to build build reliability yourself. There are a number of patterns described in the zeromq guide. I have used RabbitMQ before which gives lot of functionality out of the box, you can probably use the worker queues example from the tutorial, it can also persists messages in the queue.

I haven't used Amazon SQS before. Another tool you could use is Kafka.

See more
Decisions about ActiveMQ, RabbitMQ, and ZeroMQ
Kirill Mikhailov

Maybe not an obvious comparison with Kafka, since Kafka is pretty different from rabbitmq. But for small service, Rabbit as a pubsub platform is super easy to use and pretty powerful. Kafka as an alternative was the original choice, but its really a kind of overkill for a small-medium service. Especially if you are not planning to use k8s, since pure docker deployment can be a pain because of networking setup. Google PubSub was another alternative, its actually pretty cheap, but I never tested it since Rabbit was matching really good for mailing/notification services.

See more
Mickael Alliel
DevOps Engineer at Rookout | 4 upvotes 路 172.6K views

In addition to being a lot cheaper, Google Cloud Pub/Sub allowed us to not worry about maintaining any more infrastructure that needed.

We moved from a self-hosted RabbitMQ over to CloudAMQP and decided that since we use GCP anyway, why not try their managed PubSub?

It is one of the better decisions that we made, and we can just focus about building more important stuff!

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of ActiveMQ
Pros of RabbitMQ
Pros of ZeroMQ
  • 16
    Easy to use
  • 13
    Open source
  • 12
    Efficient
  • 10
    JMS compliant
  • 6
    High Availability
  • 5
    Scalable
  • 3
    Support XA (distributed transactions)
  • 3
    Persistence
  • 2
    Distributed Network of brokers
  • 1
    Highly configurable
  • 1
    Docker delievery
  • 0
    RabbitMQ
  • 226
    It's fast and it works with good metrics/monitoring
  • 79
    Ease of configuration
  • 57
    I like the admin interface
  • 49
    Easy to set-up and start with
  • 20
    Durable
  • 18
    Intuitive work through python
  • 18
    Standard protocols
  • 10
    Written primarily in Erlang
  • 7
    Simply superb
  • 6
    Completeness of messaging patterns
  • 3
    Reliable
  • 3
    Scales to 1 million messages per second
  • 2
    Distributed
  • 2
    Supports AMQP
  • 2
    Better than most traditional queue based message broker
  • 1
    High performance
  • 1
    Reliability
  • 1
    Clusterable
  • 1
    Inubit Integration
  • 1
    Clear documentation with different scripting language
  • 1
    Great ui
  • 1
    Runs on Open Telecom Platform
  • 1
    Better routing system
  • 1
    Supports MQTT
  • 23
    Fast
  • 19
    Lightweight
  • 11
    Transport agnostic
  • 6
    No broker required
  • 4
    Low latency
  • 4
    Low level APIs are in C
  • 1
    Open source

Sign up to add or upvote prosMake informed product decisions

Cons of ActiveMQ
Cons of RabbitMQ
Cons of ZeroMQ
  • 1
    Low resilience to exceptions and interruptions
  • 1
    Difficult to scale
  • 1
    Support
  • 9
    Too complicated cluster/HA config and management
  • 6
    Needs Erlang runtime. Need ops good with Erlang runtime
  • 5
    Configuration must be done first, not by your code
  • 4
    Slow
  • 5
    No message durability
  • 3
    Not a very reliable system - message delivery wise
  • 1
    M x N problem with M producers and N consumers

Sign up to add or upvote consMake informed product decisions

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.

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 ZeroMQ?

The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

Need advice about which tool to choose?Ask the StackShare community!

What companies use ActiveMQ?
What companies use RabbitMQ?
What companies use ZeroMQ?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with ActiveMQ?
What tools integrate with RabbitMQ?
What tools integrate with ZeroMQ?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

+47
46
68578
+34
29
40301
+42
53
19595
+25
7
2799
+24
13
16670
What are some alternatives to ActiveMQ, RabbitMQ, and ZeroMQ?
Kafka
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
Apollo
Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes.
IBM MQ
It is a messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. It offers proven, enterprise-grade messaging capabilities that skillfully and safely move information.
Amazon SQS
Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use.
Celery
Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.
See all alternatives
Reviews of ActiveMQ, RabbitMQ, and ZeroMQ
Review of
RabbitMQ

I developed one of the largest queue based medical results delivery systems in the world, 18,000+ queues and still growing over a decade later all using MQSeries, later called Websphere MQ. When I left that company I started using RabbitMQ after doing some research on free offerings.. it works brilliantly and is incredibly flexible from small scale single instance use to large scale multi-server - multi-site architectures.

If you can think in queues then RabbitMQ should be a viable solution for integrating disparate systems.

How developers use ActiveMQ, RabbitMQ, and ZeroMQ
Cloudify uses
RabbitMQ

The poster child for scalable messaging systems, RabbitMQ has been used in countless large scale systems as the messaging backbone of any large cluster, and has proven itself time and again in many production settings.

Chris Saylor uses
RabbitMQ

Rabbit acts as our coordinator for all actions that happen during game time. All worker containers connect to rabbit in order to receive game events and emit their own events when applicable.

Clarabridge Engage uses
RabbitMQ

Used as central Message Broker; off-loading tasks to be executed asynchronous, used as communication tool between different microservices, used as tool to handle peaks in incoming data, etc.

Analytical Informatics uses
RabbitMQ

RabbitMQ is the enterprise message bus for our platform, providing infrastructure for managing our ETL queues, real-time event notifications for applications, and audit logging.

Equinix-metal uses
RabbitMQ

RabbitMQ is an all purpose queuing service for our stack. We use it for user facing jobs as well as keeping track of behind the scenes jobs.

OnlineCity uses
ZeroMQ

Our platform is based on interconnected services with a custom RPC protocol based on ZeroMQ and inspired by ZeroMQs LPP/MDP protocols.

Casey Smith uses
ActiveMQ

Remote broker and local client for incoming data feeds. Local broker for republishing data feeds to other systems.

Runbook uses
ZeroMQ

Our backend monitors and reactions all talk over ZeroMQ.

clonn uses
ZeroMQ

Data Transfer

Max Lit uses
ZeroMQ

The blood