Reviews (1-4 of 4)
- 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
- More simplified, some aspects of it is a little technical though
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.
- 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.
- 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.
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.
- Easy to install.
- Open source, so there is no software cost.
- JSON compliant.
- Support for SSL/TLS.
- Failover RabbitMQ cluster for high traffic environments.
- The documentation needs improvement in explaining how to configure the above-mentioned features.
RabbitMQ Scorecard Summary
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 Technical Details