It’s true - CloudAMQP has been hosting RabbitMQ for over 8 years! CloudAMQP began as a way to simplify cloud infrastructure for developers, and today we host around 3,000 dedicated RabbitMQ servers and are rapidly growing. We are also running a huge number of shared/multi-tenant clusters.
Join us as we present an annual report for 2020, which offers surprising insights and facts on how our customers use RabbitMQ and CloudAMQP.
RabbitMQ version distribution
About 47% of all customers' servers are running RabbitMQ 3.8, which was released at the end of 2019. Another 36% are on RabbitMQ 3.7, which combined are quite good numbers, since we like it when customers are on newer versions!
A few users are still on versions 3.5 or 3.6 and some are still happy sticking with version 3.3, perhaps living by the motto, “If it is working, then don’t change it!”
As a general rule, CloudAMQP does not upgrade users on dedicated plans without their permission, but we do make it very easy for users to upgrade themselves via the CloudAMQP control panel. If you have any questions about an upgrade or new version, please contact our support team for help.
Language distribution by vhost
We see that Node.JS, Python, and Java are still the most popular languages this year, with Python now the most popular one over Node.JS last year. As we can see in the next chart, the Python py-amqp is the most used client library for Python, and that is the library used in combination with Celery, a task management tool.
Client distribution by vhost
Most users on CloudAMQP rely on the same client lib, except .NET users:
Queues, users, policies, bindings, exchanges
One thing to note is that most people seem to stay away from policies and separating access with vhosts and users. We actually provision our dedicated servers with two vhosts, three policies, and two users – and it seems like most people decide to just leave it like that and don’t use those features that much.
We have also listed the max numbers we found, and as you can see, there is one cluster with 183,968 exchanges. It's a lot and if you are at those levels, you should probably check up your setup.
Last year the median number of queues were 7, this year it's gone up to a median number of 31 queues.
Median number of queues: 31 (Max number of queues: 24,741)
Median number of users: 2 (Max number of users: 463,342)
Median number of policies: 3 (Max number of policies: 8,261)
Median number of bindings: 3 (Max number of bindings: 89,426)
Median number of exchanges: 7 (Max number of exchanges: 183,968)
Median number of vhosts: 2 (Max number of vhosts: 1,077)
HiPE distribution
During 2018, CloudAMQP had about 6% of our clusters HiPE enabled. This number dropped in 2019 to around 5% of the clusters, where it stayed during 2020. One reason for this stagnant use could be that HiPE was not supported for Erlang OTP 22.0, for a long time.
If you are reading this article and thinking, "OMG, this is not how we use RabbitMQ," or "We are the user with way too many bindings," feel free to reach out to us for some help.
- Check out our popular blog series on RabbitMQ Best Practices to learn how you can optimize RabbitMQ for your specific use case.
- CloudAMQP offers a built-in Diagnostic Tool for all paid plans which will give you suggestions on improvements.
- A more in-depth walkthrough of our findings was presented on RabbitMQ Summit in November 2019.
CloudAMQP offers flexible RabbitMQ plans for all your needs featuring time-based billing and free subscription cancellation. Best of all you can get started for free.