Как контроллер домена JBoss обнаруживает подчиненные хост-контроллеры на разных физических машинах - PullRequest
2 голосов
/ 05 октября 2011

Я пытался настроить функцию контроллера домена, которая появилась в JBoss AS7. Когда серверы и хост-контроллер работают из одной и той же папки JBoss, тогда контроллер домена запускается при запуске domain.bat. Но если у меня есть несколько серверов, которые должны работать на каком-то другом физическом компьютере, то как будет работать контроллер домена Запустите эти серверы, когда появится контроллер домена. Так как host.xml знает адрес контроллера, но домен не знает разные хост-контроллеры на разных машинах. Означает ли это, что хост-контроллеры на разных машинах должны быть запущены раньше контроллера домена? Если да, то как?

1 Ответ

3 голосов
/ 17 ноября 2011

Процесс интересный и хорошо документирован сообществом JBoss по следующим ссылкам.

https://docs.jboss.org/author/display/AS7/Admin+Guide#AdminGuide-ManagedDomain

https://docs.jboss.org/author/display/AS7/Domain+Setup

В итоге, при загрузке сценария домена, Host Controller становится активным. Роль этого контроллера - просто управлять экземплярами сервера, приписанными ему. Один из хостов будет настроен для работы в качестве контроллера домена, на что указывает простой элемент в файле host.xml.

<domain-controller>
   <local/>
</domain-controller>

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

<management-interfaces>
   <native-interface interface="management" port="9999" />
   <http-interface interface="management" port="9990" />
</management-interfaces>

<interfaces>
   <interface name="management">
       <inet-address value="192.168.0.12"/>
   </interface>
</interfaces>

Это настроило контроллер домена, поэтому он разрешает объявления портов собственного интерфейса (с которым он должен взаимодействовать) и интерфейса http (включая консоль управления) для относительного интерфейса «управление». Декларация интерфейса, в свою очередь, разрешает это до IP-адреса 192.168.0.12. Задачей контроллера домена будет управление другими хост-контроллерами. Но они должны знать, как решить себя.

Чтобы сделать это, нам нужно несколько вещей. Нам нужно имя для того, чтобы Host Controller вызывал сам себя, чтобы отличаться от других, и нам нужно предоставить интерфейс для контроллера домена, а также знать интерфейс, который выставляет сам контроллер домена. Все они по-прежнему выполняются в соответствующих host.xml файлах для каждой установки (которые вы можете записать в CLI, если разбираетесь).

Вот уникальное имя:

<host xmlns="urn:jboss:domain:1.0"
     name="staging">
[...]
</host>

Вот подчиненный хост, объявляющий порты относительным именем, и к чему разрешает это относительное имя:

<management-interfaces>
   <native-interface interface="management" port="9999" />
</management-interfaces>


<interfaces>
   <interface name="management">
       <inet-address value="192.168.0.101"/>
   </interface>
</interfaces>

И здесь мы сообщаем хост-контроллеру, где найти контроллер домена. Это так, что он может зарегистрироваться сам, что должно ответить на ваш вопрос о том, как контроллер домена «знает», какие хосты доступны.

<domain-controller>
   <remote host="192.168.0.12" port="9999"/>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...