Задать вопрос
@zvonok1337

Возможно ли увеличить максимальное значение клиентов RABBITMQ больше 65535?

Всем привет. Пользуюсь RabbitMQ.
Как известно на компьютере 65535 портов, следовательно к одному брокеру можно подключить только максимум 65535 клиентов, в теории конечно же.

Как мне увеличить этот лимит до 200.000? до 1.000.000?

Или это уже другие инструменты? Какие?

Есть много consumers (клиент), и у каждого своя собственная очередь, куда поступает задание. Клиентов крайне много, и они различаются по параметрам настройки. У каждого свои, уникальные.
Можете пояснить про кластеризацию? Поможет ли она в решении этой проблемы?
  • Вопрос задан
  • 188 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@yarkin
С серверной стороны используется всего 1 порт, это клиентская часть выбирает случайный (по умолчанию), так что количество клиентов, которое может обслужить сервер RabbitMQ (да и любой другой сервис) не ограничено лимитом портов. (Например, в Linux каждое соединение характерирузется 5 параметрами {proto, src_ip, scr_port, dst_ip, dst_port}.)

Ограничение дают вычислительные ресурсы, которыми распоряжается RabbitMQ. Так как очереди в RMQ не самые простые, то они потребляют достаточно памяти, я бы сказал, что каждая очередь (при условии что там немного сообщений) потребляет 30-50 КБ RAM. Можно попробовать включить режим Lazy Queue, чтобы RQM всегда писал/читал с диска и не кэшировал сообщения в памяти. Также RMQ любит процессор, но может хорошо распределить нагрузку между всеми ядрами.

В кластерном режиме RabbitMQ может распределить очереди по всем серверам и обслуживать клиента на любом из них (но балансить клиентов также надо по всем узлам, в идеальности "привязать" клиента к одному серверу). Но проблемы начнутся, когда узлы RMQ начнут "падать" :-) Плюс метадата об очередях синхронизируется между всеми серверами, так что, если поток команд на создание/удаление очередей будет высок, то только на этом может съесться куча процессора и сети.
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Да, вам нужна кластеризация. Правда настраивать кластер весело
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы