проблемы и решения ejabberd для кластеризации

Или используйте $ каждый модификатор с помощью $ addToSet:

https://docs.mongodb.com/manual/reference/operator/update/addToSet/#each-modifier

// Existing tags array
{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }

// Add "camera" and "accessories" to it
db.inventory.update(
   { _id: 2 },
   { $addToSet: { tags: { $each: [ "camera", "accessories" ] } } }
 )
blockquote>

-2
задан abby murali 26 January 2019 в 09:57
поделиться

1 ответ

Наконец, я нашел решение проблемы. Проблема заключается в том, что имя узла является именем узла главного имени FQ, но имя подчиненного узла не имеет домена. Также добавлены оба имени узла в файл / etc / hosts

Для кластеризации ejabberd, пожалуйста, обратитесь к следующим шагам.

Перед запуском настройте правильные записи в файлах / etc / hosts обоих узлов. то есть узлы должны разрешать друг друга, используя их имена хостов. задайте имя узла ejaberd в файле ejabberd.cfg, оба узла должны иметь разные имена узлов.

1.сконфигурируйте ejabberd в одном главном узле с правильным именем узла (либо полное доменное имя, либо просто имя вашего удобства)

2.конфигурируйте подчиненный узел с той же конфигурацией, что и у главного, т.е. бот-узлы должны иметь одинаковую конфигурацию в файле ejabberd.yml)

3.copy erlang.cookie от главного узла к подчиненному, и пользователь ejabberd должен иметь права на чтение файла cookie.

4. Запустите главный узел в режиме реального времени (ejabberdctl live)

5. Запустите подчиненный узел в режиме реального времени

6. Проверьте значение cookie в консоли erlang обоих узлов, используя команда 'erlang: get_cookie ().' оба узла должны иметь одинаковое значение.

7.Если бот-узлы имеют одинаковое значение, тогда выполните «ejabberdctl - not-timeout join_cluser ejabberd @ nodename» в ведомом устройстве. измените ejabberd @ nodename в соответствии с вашей средой. В моем случае я запустил ejabberd с пользователем 'ejabberd' с именем узла как ejabberd @ cluster-node1 (Если вы хотите, вы можете использовать также полное доменное имя, например, ejabberd@example.com)

8. Если выполнена команда abode без каких-либо ошибок узлы находятся в кластере

9. Подтвердите кластер в любой консоли erlang с помощью команды mnesia: info (). здесь вы получите подробности об узле в "running_db_nodes"

10. Ура, вы закончили ...

Для балансировки нагрузки кластера вы можете использовать HAProxy

Пожалуйста, обратитесь https://blog.onefellow.com/post/76702632637/haproxy-and-ejabberd за подробностями

Я не выполнил балансировку нагрузки, используя какой-либо аппаратный балансировщик нагрузки, нужно проверить это.

Если кто-то сделал это, пожалуйста, напишите здесь ..

0
ответ дан abby murali 26 January 2019 в 09:57
поделиться
Другие вопросы по тегам:

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