Копаясь в своих старых заметках, я совершенно случайно наткнулся на документ JBOSS 4.2.3 Manual, написанный мной (и по сути скомпилированный из разных источников) несколько лет назад. И чтобы хорошее дело не пропало даром, я решил поделиться небольшими знаниями с уважаемым хабрасообществом.
Если вы специалист со стажем более года, скорее всего, вы не найдете для себя ничего нового и можете сразу пройти мимо, чтобы не терять время.
Статья может быть полезна следующим людям:
- студенты, начинающие свою IT-карьеру в направлении Java
- младшие разработчики Java
- младшие инженеры по внедрению и технической поддержке
- младшие инженеры по развертыванию и сборке
Содержание
- Что такое JBoss
- Поддерживаемые форматы приложений
- Конфигурации сервера, включенные в JBoss
- Методы администрирования сервера JBoss
- Структура каталогов конфигурации сервера
- Содержимое каталога conf
- Содержимое каталога развертывания
- Запустить JBOSS
- Запуск JBoss как приложения
- Запуск JBoss как службы в Windows
- Запуск сервисов и приложений во время работы JBoss
- Настройки безопасности
- Настройки порта
- Настройка RMI
- Настройки подключения к базе данных
- Кластеризация
- Политика балансировки нагрузки
- Балансировка на стороне клиента
- Развертывание приложения в кластере
- Конфигурация кластера-service.xml
- Известные проблемы кластеризации в JBoss версии 4.2.3
Что такое JBoss
JBossAS — Сервер приложений с открытым исходным кодом J2EE. Сервер приложений — это программная платформа, предназначенная для эффективного выполнения процедур (программ, механических операций, сценариев), поддерживающих создание приложений.J2EE - Платформа Java, Enterprise Edition. набор спецификаций и сопутствующей документации для языка Java, описывающей архитектуру серверной платформы для задач среднего и крупного предприятия.
Основная цель спецификаций — обеспечить масштабируемость приложения и целостность данных в процессе работы системы.
J2EE — это промышленная технология, которая в основном используется в высокопроизводительных проектах, требующих надежности, масштабируемости и гибкости.
JMX — Java Management Extensions (JMX) — технология Java, предоставляющая инструменты для управления и мониторинга приложений, системных объектов, устройств (например, принтеров) и сервис-ориентированных сетей.
Эти ресурсы представлены объектами, называемыми MBeans.
Поддерживаемые форматы приложений
- Архив приложения WAR;
- Архив приложения EAR;
- Архив приложения SAR;
- Файл *-ds.xml определяет соединения с внешними базами данных;
- XML-файлы с определениями служб MBean;
- Файлы JAR, содержащие EJB или другие служебные объекты, непосредственно в JBoss AS.
Конфигурации сервера, включенные в JBoss
Минимальный - включает в себя службу ведения журналов, сервер JNDI и URL-адрес сканера развертывания для возможности развертывания приложений.Это чистый сервер.
У него нет веб-контейнера, поддержки EJB или JMS. Это не совместимая с J2EE 1.4 конфигурация.
EJB - Корпоративные JavaBeans. спецификация технологии написания и поддержки серверных компонентов, содержащих бизнес-логику.
Это часть Java EE. JMS - Служба сообщений Java. Стандарт промежуточного программного обеспечения для обмена сообщениями, который позволяет приложениям, работающим на платформе J2EE, создавать, отправлять, получать и читать сообщения.
Связь между компонентами с помощью JMS асинхронна (процедура не ждет ответа на свое сообщение) и не зависит от выполнения компонентов.
По умолчанию — основа J2EE 1.4. Это наиболее часто используемые сервисы, необходимые для развертывания приложений J2EE. Он не включает службу JAXR, службу IIOP или какую-либо из служб кластеризации.
Java API для XML-реестров (JAXR) IIOP (Интернет-протокол Inter-Orb) GIOP используется для TCP/IP. IIOP — это конкретная реализация абстрактных определений GIOP. GIOP (Общий протокол Inter-ORB) — абстрактный протокол в распределенных объектных системах Полный .
Все конфигурации и все доступные услуги.
Сюда входят службы RMI/IIOP и кластеризации, которые не загружаются в конфигурациях по умолчанию.
Если вы хотите узнать, какие службы настроены в каждой конфигурации, посмотрите в файлах:
jboss-4.2.2/сервер/ /конф/
jboss-4.2.2/сервер/ /развертывать
Методы администрирования сервера JBoss
JBoss поставляется с несколькими возможными методами администрирования, которые необходимо защитить или удалить, чтобы предотвратить несанкционированный доступ к административным функциям при развертывании.Консоль JMX (путь: локальный хост :[порт]/jmx-консоль/) Предоставляет доступ к произвольным административным параметрам, таким как выключение сервера, остановка служб, введение новых служб и т. д. Его можно установить, как любое другое веб-приложение, или удалить.
Веб-консоль (путь локальный хост :[порт]/веб-консоль/)
Использует комбинацию апплета и HTML и обеспечивает тот же уровень доступа к административным функциям, что и JMX-console.war. Информация о Томкэте (путь локальный хост :[ порт ]/statusЭfull=true)
Информация о работающих компонентах
Структура каталогов конфигурации сервера
- конф — каталог содержит файлы конфигурации сервера, например, JBoss-service.xml — определяет основные работающие сервисы.
- данные — каталог доступен для использования службами, которые хотят хранить контент в файловой системе.
Здесь хранятся данные, позволяющие восстановить сервисы после перезагрузки сервера.
Некоторые сервисы JBoss, такие как базы данных Hypersonic, хранят здесь свои данные.
- развертывать — каталог содержит сервисы для развертывания (те, которые можно добавлять или удалять во время работы сервера).
Он также содержит приложения для текущей конфигурации сервера.
Код приложения развертывается путем помещения пакетов приложения (файлов JAR, WAR и EAR) в указанный каталог.
Каталог постоянно проверяется на наличие обновлений, и любые измененные компоненты будут автоматически повторно развернуты.
- библиотека — каталог содержит JAR-файлы (Java-библиотеки, которые не следует развертывать «горячо»), необходимые для данной конфигурации сервера.
Здесь вы можете добавить необходимые файлы библиотеки.
Например, драйверы JDBC и т. д. Все JAR-файлы в этом каталоге загружаются в общий «путь к классам» при запуске.
- бревно — каталог для записи файлов журналов.
JBoss использует пакет log4j для ведения журналов, и вы также можете использовать его непосредственно в своих приложениях на сервере.
Параметры ведения журнала можно настроить с помощью файла конфигурации CONF/JBoss-log4j.xml.
- tmp - каталог используется для временного хранения файлов Jboss
- работа — каталог, используемый Tomcat для компиляции JSP.
Содержимое каталога conf
- JBoss-service.xml — определяет основные сервисы и их настройки.
- jndi.properties - Файл определяет свойства JNDI InitialContext, которые используются внутри сервера JBoss, когда InitialContext создается с использованием конструктора без аргументов.
- Интерфейс именования и каталогов Java (JNDI) — это API Java, организованный как служба каталогов, которая позволяет клиентам Java открывать и просматривать данные и объекты по их именам.
- JBoss-log4j.xml — настройка логирования
- вход-config.xml - Этот файл содержит конфигурацию аутентификации, которая используется при использовании безопасности на основе JAAS.
- ЯАС - Служба аутентификации и авторизации Java
- реквизит/* — каталог содержит пользователей и роли консоли JMX
- стандартныйjboss.xml — содержит стандартную конфигурацию JBoss EJB.
- стандартныйjbosscmp-jdbc.xml - Этот файл является файлом конфигурации по умолчанию для механизма JBoss CMP (Container-Managed Persistence).
- xmdesc/-mbean.xml* — каталог содержит дескрипторы XMBean для некоторых сервисов, указанных в файле JBoss-service.xml.
Содержимое каталога развертывания
- jbossjca-service.xml - представляет собой реализацию сервера приложений спецификации JCA. Он обеспечивает элементы управления интеграцией адаптеров ресурсов на сервере JBoss.
- JCA (архитектура соединителя Java EE) — решения для соединения серверных приложений и информационных систем предприятия (EIS) в составе решений для интеграции корпоративных приложений (EAI)
- свойства-service.xml - позволяет настраивать PropertyEditors JavaBeans, а также их свойства.
- Настройка служб EJB3 осуществляется путем редактирования файлов ejb3-interceptors-aop.xml и ejb3.deployer
- ejb3-entity-cache-service.xml настройка кэша кластера для объектных компонентов EJB3 (см.
параграф Кластеризация ).
Запустить JBOSS
Запуск JBoss как приложения
Для начала вам необходимо выполнить запуск батника с необходимыми параметрами:Для остановки необходимо выполнить батник завершения работы с необходимыми параметрами:run.bat usage: run.bat [options] options: -h, --help Show this help message -V, --version Show version information -- Stop processing options -D<name>[=<value>] Set a system property -d, --bootdir=<dir> Set the boot patch directory; Must be absolute or url -p, --patchdir=<dir> Set the patch directory; Must be absolute or url -n, --netboot=<url> Boot from net with the given url as base -c, --configuration=<name> Set the server configuration name -B, --bootlib=<filename> Add an extra library to the front bootclasspath -L, --library=<filename> Add an extra library to the loaders classpath -C, --classpath=<url> Add an extra url to the loaders classpath -P, --properties=<url> Load system properties from the given url -b, --host=<host or ip> Bind address for all JBoss services -g, --partition=<name> HA Partition name (default=DefaultDomain) -u, --udp=<ip> UDP multicast address -l, --log=<log4j|jdk> Specify the logger plugin type
usage: shutdown [options] <operation>
options:
-h, --help Show this help message (default)
-D<name>[=<value>] Set a system property
-- Stop processing options
-s, --server=<url> Specify the JNDI URL of the remote server
-n, --serverName=<url> Specify the JMX name of the ServerImpl
-a, --adapter=<name> Specify JNDI name of the MBeanServerConnection to use
-u, --user=<name> Specify the username for authentication
-p, --password=<name> Specify the password for authentication
operations:
-S, --shutdown Shutdown the server
-e, --exit=<code> Force the VM to exit with a status code
-H, --halt=<code> Force the VM to halt with a status code
Запуск JBoss как службы в Windows
Для этой цели вы можете использовать Оболочка Java-сервиса Tanuki .В этом случае у нас будет следующий пример: Wrapper.exe -i .
\etc\conf\wrapper.conf Usage:
wrapper <command> <configuration file> [configuration properties] [.
] wrapper <configuration file> [configuration properties] [.
]
(<command> implicitly '-c')
wrapper <command>
(<configuration file> implicitly 'wrapper.conf')
wrapper
(<command> implicitly '-c' and <configuration file> 'wrapper.conf')
where <command> can be one of:
-c --console run as a Console application
-t --start starT an NT service
-a --pause pAuse a started NT service
-e --resume rEsume a paused NT service
-p --stop stoP a running NT service
-i --install Install as an NT service
-it --installstart Install and sTart as an NT service
-r --remove Uninstall/Remove as an NT service
-l=<code> --controlcode=<code> send a user controL Code to a running NT service
-d --dump request a thread Dump
-q --query Query the current status of the service
-qs --querysilent Silently Query the current status of the service
-v --version print the wrapper's version information.
-? --help print this help message
Совсем оболочка Java-сервиса Tanuki Достаточно полезная утилита, которой, возможно, в будущем стоит посвятить отдельную статью.
Запуск сервисов и приложений во время работы JBoss
./сервер/ /развертывать Когда файлы приложения удаляются или перемещаются в эту папку, они будут немедленно развернуты, а результаты будут отображены в файлах журналов.
Пример:
Удалите файл Ear-deployer.xml. .
INFO [TomcatDeployer] undeploy, ctxPath=/mbg, warUrl=.
/tmp/deploy/tmp5055106795108270921mbg-2.10.1.41.ear-contents/mbg-console-exp.war/ INFO [TomcatDeployer] undeploy, ctxPath=/webstarter, warUrl=.
/tmp/deploy/tmp5055106795108270921mbg-2.10.1.41.ear-contents/mbg-webstarter-exp.war/ .
Поместите файл mail-service.xml в каталог развертывания.
.
INFO [org.jboss.mail.MailService] Mail Service bound to java:/Mail DEBUG [org.jboss.mail.MailService] Started jboss:service=Mail .
Настройки безопасности
Чтобы заблокировать доступ пользователей к любому сервису JBoss, необходимо раскомментировать параметры в файлах (например, для блокировки доступа к jmx-консоли): развертывание/jmx-console.war/WEB-INF/jboss-web.xml развертывание/jmx-console.war/WEB-INF/web.xml Логин и пароль берутся из файла: conf/логин-config.xml Который использует параметры из файлов: конф/реквизит jmx-консоль-roles.properties jmx-консоль-users.propertyНастройки порта
Можно указать серверу JBoss, какие порты использовать для его работы.Для этого вам необходимо изменить значения в файлах на нужные номера портов: порт-bindings.xml (если этот файл указан в конфигурации conf/jboss-service.xml и указан ServiceBindingManager) \server[имя_сервера]\conf\jboss-service.xml Вы можете просмотреть используемые в настоящее время порты из веб-консоли.
Настройка RMI
RMI (удаленный вызов метода) — программный интерфейс вызова удаленных методов на языке Java. В терминах RMI объект, вызывающий удаленный метод, называется клиентским объектом, а удаленный объект — серверным объектом.Компьютеры действуют как клиент и сервер только для конкретного вызова.
Вполне возможно, что при выполнении следующей операции эти компьютеры поменяются ролями, то есть сервер предыдущего вызова сам может стать клиентом при обращении к объекту на другом компьютере.
URL-адрес, который клиент может использовать для получения удаленной ссылки на объект. Эта ссылка используется для вызова методов удаленного объекта.
URL-адрес обычно имеет форму рми://хост : порт/ИмяУдаленногоОбъекта где хост — имя компьютера, на котором работает сервер реестра (rmiregistry) для удаленных объектов (это также компьютер, на котором запущен удаленный объект), порт — это номер порта, на котором сервер реестра работает на главном компьютере, а RemoteObjectName — это имя, которое клиент предоставит при попытке найти удаленный объект в реестре.
Чтобы переопределить порты RMI в jboss, вам необходимо изменить параметры RmiPort и RMIObjectPort в файле.
\server[имя_сервера]\conf\jboss-service.xml
Настройки подключения к базе данных
Источники данных настраиваются в файлах с суффиксом -ds.xml. Эти файлы могут находиться в каталогах jboss/server/default/deploy или jboss/server/default/farm при использовании конфигурации кластера JBoss. Примеры файлов конфигурации для подключения к базе данных можно посмотреть в документации: jboss/docs/example/jca.Кластеризация
Самый простой вариант организации кластера на JBosss — запуск нескольких экземпляров сервера в локальной сети с параметром -c all. Связь между узлами осуществляется с помощью библиотеки связи JGroups, которая предлагает базовые функции для отслеживания узлов, находящихся в кластере, и надежного обмена сообщениями между членами кластера.Узлы можно динамически добавлять в кластеры или удалять из них в любое время, запуская и останавливая канал с той же конфигурацией и именем, что и другие члены кластера.
По умолчанию 4.2.x A.S. создает четыре разных канала:
- копирование веб-сессии сервиса,
- EJB3 копирует службу SFSB,
- службы кэширования EJB3,
- ядро службы кластеризации общего назначения, известной как HAPartition
Политика балансировки нагрузки
Балансировка на стороне клиента Виды балансировки на стороне клиента:- По-круговой — каждый запрос отправляется на новый узел, проходя последовательно по списку узлов.
Первый узел выбирается случайным образом из списка.
- Случайный Робин — для каждого запроса целевой узел выбирается случайным образом из списка.
- Первый доступный - один из доступных узлов случайным образом выбирается в качестве основной цели и затем используется для каждого вызова.
Когда список целевых узлов изменяется (поскольку узел запускается или умирает), будет выбран новый целевой узел.
Каждый клиент выбирает свой целевой узел независимо от других.
- Первые доступные идентичные все прокси — имеет то же поведение, что и «Первый доступный», но выбор целевого узла является общим для всех клиентов.
Таким образом, если два клиента используют одну и ту же целевую службу (например, EJB), каждый клиент будет использовать одну и ту же цель.
Развертывание приложения в кластере
Чтобы развернуть приложение в кластере, необходимо скопировать его в следующую папку: /ферма/ После этого приложение будет автоматически развернуто на другие узлы кластера.Чтобы удалить приложение, просто удалите его из /farm/ на одном из узлов кластера, и она будет удалена с других узлов.
Конфигурация развертывания фермы (множественное развертывание) доступна через файл Farm-service.xml, расположенный в каталоге Deploy/deploy.last. Если вам необходимо включить поддержку развертывания фермы в вашей конфигурации, вам необходимо скопировать файл Farm-service.xml в каталог с вашей конфигурацией, например: $JBOSS_HOME/server/your_own_config/deploy/deploy.last Конфигурация кластера-service.xml Настройки для работы сервисов JBoss в режиме кластера находятся в файле кластер-service.xml в каталоге /deploy.
- имя-необязательного-атрибута — обязательный атрибут службы HAPartition, который используется для соединений внутри кластера.
- URL-адреса — указывает на каталог, в котором расположены приложения, для их развертывания в кластере.
Его следует указать так: ферма/, т.е.
полный URL будет: $JBOSS_HOME/server/all/farm
- ScanPeriod — интервал проверки папки на наличие изменений
- Порт — необязательный атрибут, указывающий адрес, по которому сервер HA-JNDI прослушивает клиентов JNP. Значение по умолчанию 1100
- Отставание — необязательный атрибут, указывающий время ожидания, используемое сокетом TCP-сервера при ожидании клиентов JNP. Значение по умолчанию — 50.
- РмиПорт — определяет, какой порт сервер должен использовать для связи с заглушкой.
Этот атрибут является необязательным.
Значение по умолчанию — 1101. Если значение не установлено, сервер автоматически назначает порт RMI.
- Автообнаружениеадрес — Необязательный атрибут, указывает адрес многоадресной рассылки для прослушивания автоматического обнаружения JNDI. Значением по умолчанию является значение системного свойства jboss.partition.udpGroup или 230.0.0.4, если оно не установлено.
- Политика баланса нагрузки — указание типа балансировщика нагрузки
- Возможен запуск нескольких копий некоторых сервисов, указанных в файле кластера-service.xml, путем настройки параметров (например, адресов портов и т. д.).
Это может быть необходимо, если сервер является узлом в нескольких разных кластерах.
- Если поместить архив в папку all/farm/ и присоединить сервер к уже работающему кластеру, то это приложение не будет развернуто, поскольку JBoss не знает, новое ли это приложение для развертывания или старое приложение.
который был удален с других узлов кластера, пока сервер был недоступен.
- Приложения нельзя поместить в конфигурацию кластера для развертывания в виде папки, поскольку они не будут правильно развернуты на других узлах кластера.
- Развертывание и свертывание приложения не являются атомарной операцией.
Те.
если приложение не развернуто на одном из узлов кластера, это не помешает развертыванию этого приложения на других узлах кластера.
Откат невозможен.
Вы не можете контролировать порядок развертывания приложения на всех узлах кластера, т.е.
его можно развернуть одновременно на всех узлах, что сделает сервис временно недоступным для клиентов.
Теги: #java #jboss #deployment #manual #сервер приложений #сервер приложений #java
-
Установка Нейронной Сети Fann В Linux
19 Oct, 24 -
Дистанционное Управление Камерой
19 Oct, 24