Ответ 1
В брокерах RabbitMQ нет жестких ограничений. Брокер будет использовать все доступные ресурсы (если вы не установите ограничения для некоторых из них, они называются водяными знаками в терминологии RabbitMQ).
Есть некоторые ограничения, накладываемые самим Erlang, как максимальное количество одновременных процессов, но если вы теоретически можете достичь их на одном node, тогда всегда полезно использовать распределенные функции.
Существует много дискуссий о потребностях и ограничениях ресурсов RabbitMQ,
- Сколько очередей может поддерживать один брокер в списке рассылки RabbitMQ
- Максимальные сообщения, разрешенные в очереди в RabbitMQ? в списке рассылки RabbitMQ
- Rabbitmq - разумные ожидания производительности/масштабирования при ошибке сервера.
- Есть ли ограничение на количество обменов для rabbitmq? на переполнение стека
P.S. Однако есть предел протокола AMQP. Они описаны в разделе 4.9 Ограничения
Спецификации AMQP налагают эти ограничения на будущие расширения AMQP или протоколы из одного и того же формата на уровне провода:
- Количество каналов на соединение: 16-разрядный номер канала.
- Число классов протоколов: 16-разрядный идентификатор класса.
- Количество методов для каждого класса протокола: 16-разрядный идентификатор метода.
Спецификации AMQP налагают эти ограничения на данные:
- Максимальный размер короткой строки: 255 октетов.
- Максимальный размер длинной строки или таблицы полей: 32-разрядный размер.
- Максимальный размер полезной нагрузки кадра: 32-разрядный размер.
- Максимальный размер содержимого: 64-разрядный размер.
Сервер или клиент могут также налагать свои собственные ограничения на ресурсы, такие как как количество одновременных подключений, количество потребителей за канал, количество очередей и т.д. Это не влияет на функциональную совместимость и не указаны.