Many factors impact the throughput of RabbitMQ

Many factors impact the throughput you can expect:

  1. Network latency and throughput
  2. Erlang 24 provides 30-40% better performance usually
  3. Disks may be the bottleneck
  4. You need sufficient CPU (at least 2, so that the queue process can use one and there is still at least one more for other processes)
  5. Message size of course (500 bytes is perfectly reasonable size for a message but I believe these tests were using smaller size)
  6. The application itself (you can use which is our go-to testing/benchmarking tool)
  7. And then there is still additional tuning that could be performed (Erlang flags, TCP buffers and many other things)

Also, if you need every last bit of the performance you can get from RabbitMQ then you should probably consider some alternative design choices. Options include:

  1. Using multiple queues
  2. Using sharding or consistent hash exchange
  3. Using a stream instead: