TrustRadius: an HG Insights company

RabbitMQ

Score9 out of 10

42 Reviews and Ratings

What is RabbitMQ?

RabbitMQ, an open source message broker, is part of Pivotal Software, a VMware company acquired in 2019, and supports message queue, multiple messaging protocols, and more. RabbitMQ is available open source, however VMware also offers a range of commercial services for RabbitMQ; these are available as part of the Pivotal App Suite.

RabbitMQ review

Use Cases and Deployment Scope

I use RabbitMQ to enable communication between several smart devices, which I build using Raspberry Pi boards equipped with various sensors (temperature, humidity, and position sensors). It is very powerful as it manages message transfers and supports device failures, since it stores the data in the broker until the devices come back online.

Pros

  • Message transfer between sensor-based devices
  • It tolerates device failures.
  • It has a user-friendly interface to monitor message transfers between devices
  • It allows communication between heterogeneous devices built in different programming languages.

Cons

  • It does not provide support for retrieving messages after they have been delivered
  • It is well documented, especially for initial configurations, but provides limited guidance on security and QoS
  • I did not encounter any additional issues so far

Return on Investment

  • It is very easy to configure thanks to its comprehensive documentation.
  • It accounts for device failures which prevents data loss
  • It enables interoperability between devices implemented in different programming languages

Usability

Other Software Used

Navicat, Postman, Ditto

RabbitMQ: The Perfect Messaging Solution for Fast, Reliable, and Flexible Communication

Use Cases and Deployment Scope

We are using microservices architecture so communication between services is the most important part. RabbitMQ helped us to solve the communication problem between microservices. Another use case is we have our own job processing mechanism, RabbitMQ helped us to push work items in the RabbitMQ queue and process it based on topic.

Pros

  • Routing of work items based on topic. We can push work items in a RabbitMQ queue which is topic based and those will be processed by subscriber of that queue.
  • Scaling with so many work items. RabbitMQ scales well with cluster approach that will help us when we have so many work items.
  • It tracks work items status, if worker crashes then the same will be passed on to other worker. This way it will be highly reliable that work item must be executed sooner or later.

Cons

  • It breaks communication if we don't acknowledge early. In some cases our work items are time consuming that will take a time and in that scenario we are getting errors that RabbitMQ broke the channel. It will be good if RabbitMQ provides two acknowledgements, one is for that it has been received at client side and second ack is client is completed the processing part.

Most Important Features

  • Reliability
  • Scaling
  • Topic based Routing

Return on Investment

  • Earlier we had a problem with missing work items with our own implementation but later using RabbitMQ is solved a problem. Now our job processing mechanism is highly reliable.
  • We also had a problem with scaling, processing 1k work items per second. RabbitMQ helped us to scale well with increasing work items.

Alternatives Considered

Apache Kafka and Amazon Simple Queue Service (SQS)

Worth investing in

Use Cases and Deployment Scope

We use RabbitMQ in conjunction with our own homegrown ESB. RabbitMQ acts as a backbone to our ESB for routing and enabling us to move transactions from one ESB endpoint to another. The new quorum queues enable have multiple queue consumers across a cluster of RabbitMQ servers meaning we have virtually zero downtime during routine maintenance.

Pros

  • High performance queues
  • Exchanges (routing)
  • Easy to use web UI
  • Easy deployment

Cons

  • Installing on Windows has some quirks especially with clustering
  • When disk is full, it stops transactions which can be problematic to recover from
  • .net SDK doesn't always recover nicely from network drops

Most Important Features

  • Queues/Exchanges (routing)
  • Able to handle large messages
  • High availability (clustering)

Return on Investment

  • We process between 30 and 100 messages per second (large messages)
  • Deploying a cluster can be done in a day

Alternatives Considered

Azure Service Bus

Other Software Used

Azure Service Bus, Azure SQL Database, Azure SQL Managed Instance, Azure Functions

RabbitMQ got the Job done in a simple scenario

Use Cases and Deployment Scope

We used RabbitMQ at a few clients as an efficient messaging and Queuing System. In particular, we were looking for a way to use messaging between disconnected apps on different platforms. The Producer App was in the .Net Web Site and the consumer was a service running on a Linux Server.

Pros

  • Queuing
  • Simple SetUp
  • Easy to integrate with

Cons

  • A bit complicated to take full advantage of its features.
  • Dashboard could be improved.

Most Important Features

  • Ease of Integration
  • Queuing

Return on Investment

  • It Accomplished the Goal we intended to use it for.
  • We were able to set it up rather quickly.

Other Software Used

Visual Studio IDE, Microsoft Azure, Microsoft Visual Studio Code

A RabbitMQ user in a microservices environment

Use Cases and Deployment Scope

RabbitMQ is our service bus and is how we perform communication across our microservice APIs. We have about a dozen or so microservices which all make use of RabbitMQ. It's extremely integral to our systems and the fact that you can send a message with built-in fault tolerance is pretty incredible when you think about it.

Pros

  • Messaging
  • Fault Tolerance
  • Ease of Integration

Cons

  • The admin dashboard could use some improvements
  • Can be difficult to administer the bus

Most Important Features

  • Cross platform communication
  • Fault Tolerance

Return on Investment

  • Huge positive impact, there have been times when systems have gone down but once we spin them back up the RabbitMQ consumers can continue processing messages in the queue/