TrustRadius Insights for RabbitMQ are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Efficient and Effective Routing: Several users have praised the routing capability of RabbitMQ, stating that it efficiently and effectively routes work items based on topic. This feature allows for easy processing by subscribers of the RabbitMQ queue.
High Scalability: Many reviewers appreciate the scalability of RabbitMQ, especially when handling a large number of work items. They mention that RabbitMQ scales well with a cluster approach, making it highly reliable for executing work items.
Easy-to-Use Web UI: The web UI of RabbitMQ is widely appreciated by users for its ease-of-use. Customers find its intuitive interface convenient for quickly performing tasks without any hassle.
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
Likelihood to Recommend
RabbitMQ is inherently a very simple product consisting only of queues and exchanges. If you're willing to invest the time to use RabbitMQ as your backend and implement your own adapters, then it's worthwhile. Because RabbitMQ is easy to roll out for simple use cases, you can just set it up to get started, and build it up over time.
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.
Likelihood to Recommend
It is highly recommended that if you have microservices architecture and if you want to solve 2 phase commit issue, you should use RabbitMQ for communication between microservices. It is a quick and reliable mode of communication between microservices.
It is also helpful if you want to implement a job and worker mechanism. You can push the jobs into RabbitMQ and that will be sent to the consumer. It is highly reliable so you won't miss any jobs and you can also implement a retry of jobs with the dead letter queue feature.
It will be also helpful in time-consuming API. You can put time-consuming items into a queue so they will be processed later and your API will be quick.
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.
Likelihood to Recommend
RabbitMQ is powerful and useful for those who have some experience. It is easy to set up for simple uses but hard to do advanced things. I found it easy to integrate with. I would recommend it in open source environments.
We started to use RabbitMQ because it was a prerequisite for using Genesys Pulse in Realtime mode. From that, it was an interesting alternative to Queuing we used like MSMQ to deal with asynchronous messaging between 2 components.
Pros
Several libraries in many languages our customers use.
Mirroring to deal with failures.
Scalability to deal with high rate in producer.
Cons
More "Rabbit" plugins
UI for monitoring
Likelihood to Recommend
RabbitMQ is open source, it is why it is interesting to use as an alternative to commercial ones for small uses. Also, it has a huge community of users who are very active to develop some plugins to deal with problematic related to microservices.
RabbitMQ is easy to implement and use.
VU
Verified User
Consultant in Information Technology (11-50 employees)
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
Likelihood to Recommend
Very well suited for cross-platform communication while solving the problem of fault tolerance with built-in retry mechanisms. It's less appropriate for communication within a single service.
RabbitMQ was the queuing system we previously used before shifting to AWS SQS. The product is "old" yet very mature and maintained. This software helped us to create rich applications with advanced architectures. It is very easy to use and can scale very well to cover a large range of use cases.
Pros
Awesome documentation
Undoubtedly Efficient
Can cover a large range of use cases
Cons
Can be hard to maintained
Difficult to monitor
Likelihood to Recommend
If you need to cover highly specific use-cases or if you are working on-prem RabbitMQ is suited. The documentation makes it easy to understand both the AMQP concepts and the various architectures that can be implemented. However, if you are working on the Cloud, most CLoud-Providers offer their own messaging service (in our case we shifted from RabbitMQ on a VM to SQS)
VU
Verified User
Engineer in Information Technology (10,001+ employees)
<div>We used Pivotal RabbitMQ in order to develop our own framework. We have a custom architecture to distribute task and commands between our micro services. The effect of RabbitMQ reached all organization as we developed Administration backend UIs for all departments. </div><div>
</div><div>The organization managed users and the project using RabbitMQ. </div><div>
</div><div>Previously, in other organization we used it as medium to communicate nano-services following a similar pattern as previously described.
</div>
Pros
Document the internal processes of Pivotal RabbitMQ so you fully understand what can and cannot do.
Concurrency and resource utilization.
Handling dead letter queues and giving flexibility to create your own dead letter systems.
AMQL 0.9.1 is extremely flexible.
Cons
Shovels are quite raw to use.
More AMQP extensions like the publisher confirmation for not requiring so many queues.
Easy AMQP entities configuration changes on production.
Likelihood to Recommend
Messages, commands that need conformation (a la RPC). When you have small and medium-sized important messages it is very good.
RabbitMQ is used in conjunction with Ellucian Banner software, specifically Ellucian Ethos Integration product and Banner Events Publisher.
Pros
Easy to install.
Open source, so there is no software cost.
JSON compliant.
Cons
Support for SSL/TLS.
Failover RabbitMQ cluster for high traffic environments.
The documentation needs improvement in explaining how to configure the above-mentioned features.
Likelihood to Recommend
RabbitMQ is flexible and has many potential usages. It is good for capturing data changes on the database and posting messages in the RabbitMQ queue - centralized auditing system. It is also good for developing a centralized login system.
VU
Verified User
Professional in Information Technology (10,001+ employees)
We have been using RabbitMQ in the IT department. We used it to monitor our SMS service delivery platform. To monitor the delivery counts, number of successful deliveries, failed delivery and also be able to monitor the performance of the SMS platform, as in [to see] if everything is working as expected.
Pros
Ability to give accurate performance results
Ability to interpret the systems data to a more simple readable format
Able to give graphical as well tabular analysis
Reliable - doesn't fail in its performance
Cons
More simplified, some aspects of it is a little technical though
Likelihood to Recommend
Was most suitable whenever we wanted to know the successful delivery rate of our SMS platform.
We at Iterable use RabbitMQ for two key features: (1) keeping a queue of all the incoming messages that need to be processed with some semblance of order (2) scheduling work to be done later.
The reason we need to keep a queue is that when our traffic spikes, we can have up 1 million messages coming in that need to be processed in some form or fashion. To expect the backend service to support that is crazy. Instead, we dump them into RabbitMQ to give our backend service time to process them. As for scheduling work, the use case is to give our customers control over when they want some form of work to be done. What we do is we store their work request into a RabbitMQ delay queue with a set expiration. When it expires, it expires into the normal queues where our backend service will process them.
Pros
What RabbitMQ does well is what it's advertised to do. It is good at providing lots of high volume, high availability queue. We've seen it handle upwards of 10 million messages in its queues, spread out over 200 queues before its publish/consume rates dipped. So yeah, it can definitely handle a lot of messages and a lot of queues. Depending on the size of the machine RabbitMQ is running on, I'm sure it can handle more.
Decent number of plugins! Want a plugin that gives you an interface to view all the queues and see their publish/consume rates? Yes, there's one for that. Want a plugin to "shovel" messages from one queue to another in an emergency? Check. Want a plugin that does extra logging for all the messages received? Got you covered!
Lots of configuration possibilities. We've tuned over 100 settings over the past year to get the performance and reliability just right. This could be a downside though--it's pretty confusing and some settings were hard to understand.
Cons
So why did I only give it a 5? Well, there is almost no observability out of the box. Want to see what messages are in a queue? You have to take messages out and re-enqueue them, breaking the order and risking message loss. What to list all the queues? You have to install a janky plugin that only works half the time and takes 5 seconds to refresh.
Delay queue expiration can cause RabbitMQ to grind to a halt. We've seen that when delay queues have over 1 million messages, they expire in an explosion! Or rather, in an ice-age. RabbitMQ tries to dump all the messages of an expired delay queue at once and it causes memory usage and CPU usage to spike and suddenly RabbitMQ stops accepting new messages into its other queues.
Likelihood to Recommend
If you are looking for a message broker, RabbitMQ is pretty good. Its API lets you create tons of queues on demand and publish to all of them at once, while you can have 10+ consumers on each queue. It also does a good job of absorbing bursts of traffic. We've seen our queues get backed up to 3 million messages with no problem.
In the modern era of GDPR, you may run into problems with keeping messages encrypted out of the box in-flight and at-rest with RabbitMQ. Not saying it's impossible, but it's tough to set up and you have to pay a high overload.