WildFly 8 — новый улучшенный сервер приложений JBoss для Linux
Как мы все знаем, JBoss AS был переименован в WildFly. Было добавлено много новых функций и многие обновлены. Наконец, WildFly 8.0.0 Final был выпущен 11 февраля 2014 г.. О том же заявил руководитель Джейсон Грин проекта WildFly.
WildFly 8 — это Red Hat, совместимый с Java EE 7 сервер приложений с открытым исходным кодом. Основные характеристики приведены ниже:
Совместимость с Java EE 7
Самым большим изменением является то, что теперь WildFly 8 официально сертифицирован Java EE7.
Высокопроизводительный веб-сервер
Undertow — это новый высокопроизводительный веб-сервер, написанный на Java. Теперь это реализовано в WildFly 8. Он действительно рассчитан на высокую пропускную способность и масштабируемость и может обрабатывать миллионы соединений. Жизненный цикл Undertow полностью контролируется приложением для внедрения. Это чрезвычайно легкий вариант: основной jar имеет размер 1 МБ, а встроенный сервер использует менее 4 МБ кучи. Это действительно здорово.
3-портовое сокращение
Поскольку он использует Undertow, который поддерживает обновление HTTP, что позволит мультиплексировать несколько протоколов через один порт HTTP. В WildFly 8 почти все свои протоколы были мультиплексированы через два порта HTTP: один — порт управления, а другой — порт приложения. Это действительно большое изменение и преимущество для поставщиков облачных услуг (таких как OpenShift), которые запускают сотни и тысячи экземпляров на одном сервере. Всего у него есть два порта по умолчанию для настройки: 9990 (консоль веб-администрирования) и 8080 (консоль приложения).
Управление доступом на основе ролей и аудит
Это новая и интересная вещь, реализованная в WildFly 8. С ее помощью мы можем создавать разных пользователей и назначать им разные роли в соответствии с требованиями. Позже покажу на скриншотах.
Ведение журнала
API управления теперь поддерживает возможность составлять список и просматривать доступные файлы журналов на сервере. Теперь у нас есть атрибут «add-logging-api-dependentness», доступный для любого типа развертываний, в которых мы хотим пропустить ведение журнала контейнера. Это отключит добавление неявных зависимостей ведения журнала сервера. У нас есть другой вариант: мы можем использовать jboss-deployment-structure.xml, чтобы исключить подсистему журналирования. Использование этого поможет предотвратить любое развертывание подсистемы журналирования.
Мы также можем использовать другой параметр, например, use-deployment-logging-config, для включения/отключения обработки файлов конфигурации журналирования в развертывании.
Примечание. Системное свойство, которое мы использовали для отключения отдельного ведения журнала, в этой версии устарело.
Кластеризация
И снова большое изменение – это одна кластеризация. Все функции, связанные с поддержкой кластеризации, были изменены в WildFly 8, включая следующие:
- Распределенный веб-сеанс был оптимизирован для него с помощью нового веб-сервера на основе Java, т.е. Undertow.
- поддержка mod_cluster для Undertow.
- Оптимизированные возможности распределенного единого входа (единого входа) и поддержка Undertow.
- Новая/оптимизированная реализация распределенного кэширования @Stateful EJB.
- В WildFly 8 добавлен новый API общедоступной кластеризации.
- Для создания одноэлементных сервисов он предоставляет новые общедоступные API.
Улучшения интерфейса командной строки
Конфигурация CLI также была улучшена. Знаете, все администраторы любят работать с CLI ;). Итак, теперь мы можем создать псевдоним для определенного сервера, а затем использовать этот псевдоним всякий раз, когда захотите подключиться к этому серверу с помощью команды подключения.
В WildFly 8 еще сделано множество улучшений и обновлений. Все это можно проверить по адресу:
- http://wildfly.org/news/2014/02/11/WildFly8-Final-Released/
Установка WildFly 8 в Linux
Прежде чем приступить к установке, убедитесь, что в вашей системе установлена Java EE 7. WildFly 8 не будет работать с предыдущими версиями. Следуйте приведенному ниже руководству для установки Java EE 7 в системах Linux.
- Установите JDK/JRE 7u25 в Linux
Шаг 1: Загрузка WildFly 8
Используйте следующую ссылку, чтобы загрузить последнюю версию zip-файла WildFly.
- http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip
Вы также можете использовать команду «wget» для загрузки непосредственно из командной строки.
[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip
Скопируйте zip-файл в любое удобное место (например, «/data/» в моем случае) и извлеките его с помощью команды «unzip».
[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip
Шаг 2. Установка переменных среды
Теперь установите некоторые переменные среды. Вы можете установить их в системе или в файлах конфигурации. Здесь я настраиваю файлы конфигурации standalone.sh и standalone.conf в папке «bin».
[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/
Добавьте эти две следующие строки в файлы standlone.sh/standlone.conf. Пожалуйста, укажите место установки WildFly и местоположение Java Home.
JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”
Примечание. Для всей системы вы можете установить его в файле «/etc/profile».
Шаг 3: Запуск WildFly 8
Теперь запустите сервер, т. е. для автономного режима используйте «standalone.sh», а для режима домена используйте «domain.sh».
[root@tecmint bin]# ./standalone.sh
[root@tecmint bin]# ./domain.sh
Но здесь я начинаю в автономном режиме. По умолчанию он запускается с файла «standalone.xml». Но вы также можете начать с другой конфигурации, используя опцию «–server-config».
Как показано ниже, я запускаю сервер с «standalone-full-ha.xml», и этот файл присутствует в «$JBOSS_HOME/standalone(profile)/configuration/».
[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
Пример вывода
Calling "/data/wildfly-8.0.0.Final/standalone/configuration/standalone.conf"
Setting JAVA property to "/data/java/jre7/bin/java"
===============================================================================
JBoss Bootstrap Environment
JBOSS_HOME: "/data/wildfly-8.0.0.Final"
JAVA: "/data/java/jre7/bin/java"
JAVA_OPTS: "-client -Dprogram.name=standalone.sh -Xms64M -Xmx512M -XX:MaxPerm
Size=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"
===============================================================================
13:55:26,403 INFO [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:55:33,812 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:55:35,481 INFO [org.jboss.as] (MSC service thread 1-1) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:55:58,646 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
...........
13:56:22,778 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
13:56:22,794 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13:56:22,794 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 64534ms - Started 229 of 356 services (172 services are lazy, passive or on-demand)
Шаг 4: Доступ к WildFly 8
Теперь вы можете указать в браузере «http://localhost:8080» (если используется http-порт, настроенный по умолчанию), что приведет вас к экрану приветствия.
Отсюда вы можете получить доступ к руководствам по документации сообщества WildFly и расширенному доступу к веб-консоли администрирования.
Шаг 5: Управление WildFly 8
WildFly 8 предоставляет две административные консоли для управления работающим экземпляром:
- веб-консоль администрирования
- Интерфейс командной строки
Прежде чем подключаться к консоли администрирования или удаленно с помощью командной строки, вам необходимо создать нового пользователя с помощью сценария «add-user.sh» в папке bin.
Затем перейдите в каталог «bin», установите «JBOSS_HOME» в add-user.sh (если переменная не установлена в системных базах). и создайте пользователя, как показано ниже.
[root@tecmint bin]# ./add-user.sh
После запуска скрипта вы пройдете процесс добавления нового пользователя:
Пример вывода
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password should not be one of the following restricted values {root, admin, administrator}
- The password should contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
- The password should be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'admin' to file '/data/wildfly-8.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'admin' to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'admin' with groups to file /data/wildfly-8.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'admin' with groups to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition
Press any key to continue . . .
Теперь войдите в веб-консоль администрирования по адресу «http://localhost:9990/console» и введите новое созданное имя пользователя и пароль для прямого доступа к консоли управления.
Первый экран после входа в систему.
Если вы предпочитаете управлять своим сервером из CLI, запустите сценарий «jboss-cli.sh» из каталога «bin», который предлагает те же возможности, доступные через веб-интерфейс.
[root@tecmint bin]# cd bin
[root@tecmint bin]# ./jboss-cli.sh --connect
Connected to standalone controller at localhost:9999
Для получения дополнительной информации следуйте официальной документации WildFly 8 по адресу https://docs.jboss.org/author/display/WFLY8/Documentation.
Читайте также: WildFly (JBoss AS) – как получить доступ к интерфейсу командной строки и управлять им с помощью графического пользовательского интерфейса