2015-07-21 9 views
0

Из документов @http://docs.ejabberd.im/admin/guide/clustering/#clustering-setupСогласованное развертывание кластера ejabberd в облаке?

Добавление узла в кластер осуществляется путем запуска нового узла ejabberd в пределах одной и той же сети, и запустив команду из узла кластера. На втором узле, например, в качестве ejabberd уже запущен, запустите следующую команду как пользователь ejabberd демон, используя скрипт ejabberdctl: ejabberdctl join_cluster '[email protected]'

Как это перевести на развертывание в cloud-, где экземпляры могут (надеюсь) быть выключенным/перезапущенным на основе согласованного изображения и за балансировщиком нагрузки?

Возможно, все из них, включая исходный экземпляр, используют «example.com» как «первый» в приведенном выше примере (при условии, что «example.com» настроен в DNS, чтобы указать на балансировщик облачной нагрузки)?

Или необходимо, чтобы первый экземпляр не пытался присоединиться к кластеру, а последующие все используют ip-адрес этого исходного экземпляра вместо «первого» (и, если это так, он становится неаккуратным, если этот начальный экземпляр идет вниз)?

ответ

1

Возможно, все из них, включая исходный экземпляр, используют «example.com» как «первый» в приведенном выше примере (при условии, что «example.com» настроен в DNS, чтобы указать на балансировщик облачной нагрузки)?

Нет, параметр имени узла - это имя узла узла Erlang ejabberd. Это должно быть еще больше на внутренней сети Amazon, а не на публичной, поэтому не следует полагаться на центральный DNS. Это должно быть имя узла Erlang в качестве недавно начатого узла с подключением к существующему узлу для совместного использования одной и той же «схемы кластеров» и выполнения начальной синхронизации данных.

Таким образом, развертывание осуществляется следующим образом:

  • первый экземпляр не нужно присоединиться к кластеру на самом деле, как нет кластера схемы для совместного использования.
  • Новый экземпляр может использовать имя узла любого другого узла кластера. Это означает, что они добавят себя в схему кластера ejabberd. Это означает, что ejabberd знает, что пользователи могут находиться на любом узле этого кластера. Вы можете указать на любой запущенный узел кластера, чтобы добавить новый, так как все они эквивалентны (мастер не существует).
  • Вам по-прежнему необходимо настроить балансировщик нагрузки, чтобы сбалансировать трафик с общедоступным портом XMPP на всех узлах.

Вам нужно выполнить конфигурацию кластера только один раз для каждого дополнительного узла кластера. Конфигурация со всем узлом хранится локально, поэтому, когда вы останавливаете и перезапускаете узел, он автоматически присоединяется к кластеру после его правильной настройки.

+0

OK- получил это ... имеет значение, к какому узлу подключается (т. Е. Какая-либо разница для повторного использования одного и того же варианта или распространения его для дополнительных узлов), а также, когда они подключены, ломаться, если исходный снижается? (Я надеюсь, что эти две проблемы связаны, и ответ на оба - «нет», так как соединение - это просто получить их в дверь ... но просто чтобы быть уверенным). – davidkomer

+0

Предполагая, что эти оба являются «нет», я продолжил обсуждение настройки более подробно здесь: https://www.ejabberd.im/forum/25020/consistent-deployment-ejabberd-cluster-cloud – davidkomer

+0

Это правильно. Вы можете указать на любой запущенный узел в кластере, чтобы добавить новый, так как все они эквивалентны (мастер не существует), и вам нужно только выполнить конфигурацию кластера для каждого раза для каждого дополнительного узла кластера.Конфигурация со всем узлом хранится локально, поэтому, когда вы останавливаете и перезапускаете узел, он автоматически присоединяется к клану после его правильной настройки (я обновил основной ответ, чтобы быть более четким для будущих читателей). –

Смежные вопросы