Как добавить большое количество пользователей в комнату muc в ejabberd?

#ejabberd #ejabberd-module #ejabberd-api #ejabberd-hooks

Вопрос:

У нас есть требование добавить 100 тысяч пользователей в одну комнату muc на сервере ejabberd. Мы используем api subscribe_room для добавления пользователей по одному. При добавлении пользователей в комнату muc увеличивается объем памяти, потребляемой ejabberd. В какой-то момент сервер Ejabberd потреблял 11 ГБ памяти. Поскольку потребление памяти продолжает увеличиваться, серверный процесс Ejabberd убивается ядром. Мы используем версию ejabberd-21.01.

  1. Нужно ли нам менять какую-либо конфигурацию или мы что-то упускаем?
  2. Есть ли способ добавить нескольких пользователей в комнату muc за один вызов api в ejabberd?

Комментарии:

1. Как вы уже должны были заметить, остальной мир не использует индийские слова лакх / лак. Поэтому, пожалуйста, не используйте их здесь.

Ответ №1:

У нас есть требование добавить 1lakh пользователей в одну комнату muc на сервере ejabberd.

Я не знаю, что такое 1 лакх, но в любом случае:

XEP-0045 MUC предназначен для общения нескольких пользователей в чате или нескольких сотен… не для тысяч или миллионов ботов, получающих уведомления. Ботам наплевать на присутствие, поэтому использование MUC-излишество.

Вам следует проверить альтернативы, например:

Комментарии:

1. У нас есть школа с более чем 100 тысячами пользователей, и мы хотим отправлять сообщения школьного уровня всем пользователям. Поэтому мы хотим добавить их всех в одну комнату muc, используя сервер ejabberd. При добавлении 100 тысяч пользователей у нас возникла проблема с памятью. Есть ли способ добавить их оптом без каких-либо проблем с памятью?

2. Чтобы отправить сообщения школьного уровня всем пользователям, см. раздел mod_announce docs.ejabberd.im/admin/configuration/modules/#mod-announce