«1. Введение

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

Прежде чем мы начнем, нам нужно убедиться, что у нас есть переменная JAVA_HOME, установленная в JDK. Все, что будет после версии 8, будет работать для WildFly 17.

2. Режимы сервера

WildFly по умолчанию поставляется с автономным режимом и режимом домена. Сначала рассмотрим автономный режим.

2.1. Автономный

После загрузки и извлечения WildFly в локальный каталог нам нужно выполнить пользовательский скрипт.

Для Linux мы бы сделали:

~/bin/add-user.sh

Или для Windows:

~\bin\add-user.bat

Пользователь admin уже существует; однако мы хотим изменить пароль на что-то другое. Обновление пароля администратора по умолчанию всегда рекомендуется, даже если вы планируете использовать другую учетную запись для управления сервером.

Пользовательский интерфейс предложит нам обновить пароль в опции (a):

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
User 'admin' already exists and is enabled, would you like to...
 a) Update the existing user password and roles
 b) Disable the existing user
 c) Type a new username
(a):

После смены пароля нам нужно запустить сценарий запуска, соответствующий ОС:

~\bin\standalone.bat

После вывода сервера останавливается, мы видим, что сервер работает.

Теперь мы можем получить доступ к административной консоли по адресу http://127.0.0.1:9990, как указано в выводе. Если мы обращаемся к URL-адресу сервера, http://127.0.0.1:8080/, нам должно быть предложено сообщение о том, что сервер работает:

Server is up and running!

Эта быстрая и простая настройка отлично подходит для одиночного экземпляра. работает на одном сервере, но давайте проверим режим домена для нескольких экземпляров.

2.2. Домен

Как упоминалось выше, в режиме домена несколько экземпляров сервера управляются одним хост-контроллером. Количество по умолчанию — два сервера.

Аналогично автономному экземпляру мы добавляем пользователя через скрипт add-user. Однако сценарий запуска правильно называть доменным, а не автономным.

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

Например, мы можем посетить один и тот же URL-адрес первого сервера по адресу http://127.0.0.1:8080/

Server is up and running!

Аналогичным образом мы можем посетить второй сервер по адресу http://127.0.0.1. :8230

Server is up and running!

Чуть позже мы рассмотрим эту странную конфигурацию портов для второго сервера.

3. Развертывание

Для развертывания нашего первого приложения нам нужен хороший пример приложения.

Давайте воспользуемся Spring Boot Hello World. С небольшой модификацией он будет работать на WildFly.

Во-первых, давайте обновим pom.xml для создания WAR. Мы изменим элемент упаковки и добавим maven-war-plugin:

<packaging>war</packaging>
...
<build>
  <plugins>
	<plugin>
	  <groupId>org.apache.maven.plugins</groupId>
	  <artifactId>maven-war-plugin</artifactId>
	  <configuration>
		<archive>
		  <manifestEntries>
			<Dependencies>jdk.unsupported</Dependencies>
		  </manifestEntries>
		</archive>
	  </configuration>
	</plugin>
  </plugins>
</build>

Затем нам нужно изменить класс Application, чтобы расширить SpringBootServletInitializer:

public class Application extends SpringBootServletInitializer

И переопределить метод configure:

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

Наконец, давайте создадим проект:

./mvnw package

Теперь мы можем его развернуть.

3.1. Развертывание приложения

Давайте посмотрим, как легко развернуть наше новое приложение WildFly через консоль.

Во-первых, мы входим в консоль, используя пользователя admin и пароль, установленный ранее.

Нажмите «Добавить» -\u003e «Загрузить развертывание» -\u003e «Выберите файл».

Во-вторых, мы переходим в целевой каталог для приложения Spring Boot и загружаем файл WAR. Нажмите «Далее», чтобы продолжить, и отредактируйте имя нового приложения.

Наконец, мы обращаемся к приложению по тому же URL-адресу — http://127.0.0.1:8080/. Теперь мы видим вывод приложения в следующем виде:

Greetings from Spring Boot!

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

4. Конфигурация сервера

Для этих общих свойств удобнее всего просматривать их в консоли администрирования.

4.1. Общие свойства конфигурации

Прежде всего, давайте взглянем на подсистемы — каждая из них имеет значение с включенной статистикой, которое можно установить в значение true для статистики времени выполнения:

В разделе «Пути» мы видим пару важных путей к файлам, используемых сервером:

В качестве примера полезно использовать определенные значения для каталога конфигурации и каталога журнала:

jboss.server.config.dir
jboss.server.log.dirw

«

«Кроме того, раздел «Источники данных и драйверы» позволяет управлять внешними источниками данных и различными драйверами для слоев сохраняемости данных:

В подсистеме ведения журнала мы обновляем уровень журнала с INFO на DEBUG, чтобы увидеть больше журналов приложений:

4.2. Файлы конфигурации сервера

<server name="server-one" group="main-server-group"/>
<server name="server-two" group="main-server-group" auto-start="true">
  <jvm name="default"/>
  <socket-bindings port-offset="150"/>
</server>

Помните URL-адрес второго сервера в режиме домена, http://127.0.0.1:8230? Нечетный порт 8230 связан со значением смещения по умолчанию 150 в файле конфигурации host-slave.xml:

<socket-bindings port-offset="10"/>

Однако мы можем сделать простое обновление значения смещения порта:

Следовательно, теперь мы обращаемся ко второму серверу по URL-адресу http://127.0.0.1:8090.

Еще одна замечательная особенность использования и настройки приложения в удобной консоли администратора заключается в том, что эти настройки можно экспортировать в виде XML-файла. Использование согласованной конфигурации с помощью XML-файлов упрощает управление несколькими средами.

5. Мониторинг

Интерфейс командной строки WildFly позволяет просматривать и обновлять значения конфигурации так же, как и консоль администрирования.

~\bin\jboss-cli.bat

Чтобы использовать CLI, мы просто выполняем:

[disconnected /] connect
[[email protected]:9990 /]

После этого мы набираем:

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

[[email protected]:9990 /] :read-config-as-xml

Например, чтобы просмотреть всю текущую конфигурацию в виде XML при подключении к экземпляру сервера, мы можем запустить команду read-config-as-xml:


Интерфейс командной строки также можно использовать для статистики времени выполнения на любом серверных подсистем. Самое главное, CLI отлично подходит для выявления различных проблем с помощью показателей сервера.

6. Заключение

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