Ejabberd MUC с более чем 5 тысячами пользователей

Ejabberd — это масштабируемый сервер, вот статья, в которой показано, что Ejabber может поддерживать более 2 миллионов одновременных пользователей.

Но для многопользовательского чата (MUC) Ejabber поддерживает только 5 тыс. пользователей (согласно коду модуля ejabberd: здесь). Ejabbered должен обслуживать большее количество пользователей, поэтому мои вопросы к гуру Ejabberd:

  1. Почему Ejabberd накладывает ограничение на поддержку только 5 тысяч пользователей в MUC?
  2. Как поддерживать более 5 тысяч пользователей в MUC?
  3. Сможет ли кластеризация смягчить это ограничение?

Заранее спасибо.


person Crawler    schedule 17.03.2021    source источник


Ответы (2)


  1. Почему Ejabberd накладывает ограничение на поддержку только 5 тысяч пользователей в MUC?

Потому что нет никакого смысла в том, чтобы 5000 человек делились своим присутствием друг с другом и болтали со всеми остальными 4999.

  1. Как поддерживать более 5 тысяч пользователей в MUC?

Очень просто, просто отредактируйте исходный код и добавьте от 0 до 5000. Перекомпилируйте, переустановите. Но тогда не жалуйтесь, если ваша машина тормозит. Вы делаете это на свой страх и риск.

  1. Сможет ли кластеризация смягчить это ограничение?

Нет, потому что каждая комната обрабатывается процессом, и этот процесс живет на определенной машине.

XEP-0045 (MUC) не предназначен для размещения тысяч чат-ботов в одной комнате. Это для людей в чате. Если у вас нет людей в чате, используйте подходящий для вашей задачи инструмент, например MucSub или PubSub...

person Badlop    schedule 22.03.2021

Вы используете термин «пользователь», но, очевидно, вы не думаете людьми, не людьми, верно?

Я надеюсь, вы не планируете, что 5000 человек будут присоединяться и выходить из одного чата, делясь своим присутствием каждый раз, когда они присоединяются и выходят из чата, с остальными 4999 людьми. Надеюсь, вы не ожидаете, что эти 5000 человек отправят публичные сообщения всем остальным 4999 людям.

Это будет клетка для крикета.

person Badlop    schedule 17.03.2021
comment
Верно. Один запрос приведет к 4,999 КБ другого обновления. Допустим, мне нужно это сделать, и я знаю, что могу сделать это с помощью веб-сокета. Вы знаете, как это сделать с Ejabberd? - person Crawler; 20.03.2021