Я настроил экземпляр ejabberd на debian 10 из пакета debian (версия 18.12). У меня 3 виртуальных хоста (назовем example1.com, example2.com и example3.com).
Первый использует LDAP для связи с нашей Active Directory, чтобы аутентифицировать пользователей, другие используют серверную часть SQL (mysql) для хранения учетных данных пользователя.
Что необходимо, так это то, что каждый пользователь в этих трех доменах должен видеть в своем списке всех остальных пользователей.
Для этого я создал 4 общих ростера для каждого виртуального хоста:
Это вроде как рабочий ... Я могу видеть всех пользователей, сгруппированных, как я хочу, но сервер всасывает слишком много процессора каждый раз, когда кто-то входит в систему (или так кажется).
Я опасаюсь, что я реализовал циклическую зависимость и что сервер продолжает работать по кругу, перебирая все списки.
Правильно ли то, что я сделал? Есть ли лучший способ реализовать это?
Спасибо
Если бы был цикл, ejabberd либо A) потреблял бы все ресурсы и с треском вылетал: вы бы это заметили !, либо B) обнаруживал цикл и выдавал красивое сообщение о сбое в файлах журнала: ищите такое, когда пользователь входит в систему .
Другая возможность, если в ваших доменах много учетных записей (скажем, сотни или тысячи), является просто узким местом: слишком много элементов для обработки ЦП, хранения в ОЗУ или доставки по сети.
Если узким местом является сеть, вы можете попробовать @ online @ вместо @ all @ в некоторых из ваших групп ...