#ejabberd #ejabberd-module #ejabberd-api #ejabberd-hooks
Вопрос:
У нас есть требование добавить 100 тысяч пользователей в одну комнату muc на сервере ejabberd. Мы используем api subscribe_room для добавления пользователей по одному. При добавлении пользователей в комнату muc увеличивается объем памяти, потребляемой ejabberd. В какой-то момент сервер Ejabberd потреблял 11 ГБ памяти. Поскольку потребление памяти продолжает увеличиваться, серверный процесс Ejabberd убивается ядром. Мы используем версию ejabberd-21.01.
- Нужно ли нам менять какую-либо конфигурацию или мы что-то упускаем?
- Есть ли способ добавить нескольких пользователей в комнату muc за один вызов api в ejabberd?
Комментарии:
1. Как вы уже должны были заметить, остальной мир не использует индийские слова лакх / лак. Поэтому, пожалуйста, не используйте их здесь.
Ответ №1:
У нас есть требование добавить 1lakh пользователей в одну комнату muc на сервере ejabberd.
Я не знаю, что такое 1 лакх, но в любом случае:
XEP-0045 MUC предназначен для общения нескольких пользователей в чате или нескольких сотен… не для тысяч или миллионов ботов, получающих уведомления. Ботам наплевать на присутствие, поэтому использование MUC-излишество.
Вам следует проверить альтернативы, например:
- MUC/Sub ejabberd (это упрощение MUC, подходящее для большого количества подписчиков https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/
- XEP-0060 Публикация-подписка, реализованная в mod_pubsub от ejabberd
Комментарии:
1. У нас есть школа с более чем 100 тысячами пользователей, и мы хотим отправлять сообщения школьного уровня всем пользователям. Поэтому мы хотим добавить их всех в одну комнату muc, используя сервер ejabberd. При добавлении 100 тысяч пользователей у нас возникла проблема с памятью. Есть ли способ добавить их оптом без каких-либо проблем с памятью?
2. Чтобы отправить сообщения школьного уровня всем пользователям, см. раздел mod_announce docs.ejabberd.im/admin/configuration/modules/#mod-announce