Annual RabbitMQ report 2020 by CloudAMQP

We can hardly believe that CloudAMQP has already been hosting RabbitMQ for more than 7 years! Today, we provide thousands of RabbitMQ servers with a total somewhere near 60 thousand accounts. This is our annual report for 2019 based on CloudAMQP customer usage of RabbitMQ. Be prepared for some interesting facts.

RabbitMQ version distribution

Most of our users (about 61%) are still on RabbitMQ 3.7, which isn’t a huge surprise for the simple reason that version 3.8 has only been out for a short time and is not yet added as the default version in our control panel.

Quite 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, we do not upgrade users 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 version upgrade, please contact our support team for help.

Language distribution by vhost

We see that Node.JS, Python, and Java are the most popular languages this year, but since we don’t have any data to compare with from 2018, this may have remained the same.

Client distribution by vhost

Node.JS amqplib is the most popluar client lib among CloudAMQP users. We can see that users rely on the same client lib whitin a specific language, except for .NET users, where the usage is divided between MassTransit, EasyNetQ, and .NET NServiceBus.

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 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 152,391 bindings and one with 157,115 exchanges. It's a lot and if you are at those levels, you should probably check up your setup.

Median number of queues: 7 (Max number of queues: 28,720)

Median number of users: 2 (Max number of users: 121,184)

Median number of policies: 3 (Max number of policies: 6,576)

Median number of bindings: 3 (Max number of bindings: 152,391)

Median number of exchanges: 7 (Max number of exchanges: 157,115)

Median number of vhosts: 2 (Max number of vhosts: 752)

HiPE distribution

Last year (2018), about 6% of our clusters had HiPE enabled. This has during 2019 gone down to around 5% of the clusters. One reason could be that HiPE is not yet supported for Erlang OTP 22.0 More information can be found here: https://www.erlang.org/news/132.

If you, by reading this article, feel something like "This is not how we are using RabbitMQ!" or "We are the one with too many bindings", feel free to reach out to us for some help, or:

  • 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 a couple of months ago. Watch the lecture here:

CloudAMQP offers flexible RabbitMQ plans for all your needs. You are only billed by the second of usage, and you can cancel your subscription at any time. And, best of all, you can get started for free.

CloudAMQP - industry leading RabbitMQ as a service

Start your managed cluster today. CloudAMQP is 100% free to try.

13,000+ users including these smart companies