Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RabbitMQ - How many queues can RabbitMQ handle on a single server?

What's the maximum number of queues that RabbitMQ can handle on a single server?

Does it depend on RAM? Does it depends on erlang processes?

like image 553
Raj Sf Avatar asked Apr 10 '14 13:04

Raj Sf


People also ask

How many queues can RabbitMQ support?

Thousands (or even tens of thousands) of queues should be no problem at all, though each object (e.g., queues, exchanges, bindings, etc) will take up some memory and/or disk space. By default, Erlang will enforce a maximum number of concurrent processes (i.e., lightweight threads) at around 32768 IIRC.

How many connections can RabbitMQ handle?

Below is the default TCP socket option configuration used by RabbitMQ: TCP connection backlog is limited to 128 connections.

How many messages can RabbitMQ handle per second?

The RabbitMQ message broker was deployed atop Google Compute Engine where it demonstrated the ability to receive and deliver more than one million messages per second (a sustained combined ingress/egress of over two million messages per second).

How big can RabbitMQ queue be?

Define Max Queue Length Using a Policy When the 1MiB limit is reached, the oldest messages are discarded from the head of the queue.


1 Answers

There are not any hard-coded limits inside RabbitMQ broker. The broker will utilize all available resources (unless you set limits on some of them, they are called watermarks in RabbitMQ terminology).

There are some limitations put by Erlang itself, like maximum number of concurrent processes, but if you theoretically can reach them on single node then it is always good idea to use distributed features.

There are a lot of discussions about RabbitMQ resource usage and limits,

  • How many queues can one broker support on RabbitMQ mailing list
  • Max messages allowed in a queue in RabbitMQ? on RabbitMQ mailing list
  • Rabbitmq - Reasonable performance/scale expectations on Server Fault
  • Is there a limit to the number of exchanges for rabbitmq? on Stack Overflow

P.S. There are AMQP protocol limit though. They are described in section 4.9 Limitations

The AMQP specifications impose these limits on future extensions of AMQP or protocols from the same wire-level format:

  • Number of channels per connection: 16-bit channel number.
  • Number of protocol classes: 16-bit class id.
  • Number of methods per protocol class: 16-bit method id.

The AMQP specifications impose these limits on data:

  • Maximum size of a short string: 255 octets.
  • Maximum size of a long string or field table: 32-bit size.
  • Maximum size of a frame payload: 32-bit size.
  • Maximum size of a content: 64-bit size.

The server or client may also impose its own limits on resources such as number of simultaneous connections, number of consumers per channel, number of queues, etc. These do not affect interoperability and are not specified.

like image 89
pinepain Avatar answered Sep 19 '22 03:09

pinepain