Введение
Помимо модификации конфигурационного файла, самым важным является развертывание приложения. В этой статье объясняется, как развертывать приложения как в управляемом домене, так и в автономном режиме в wildfly 21.
Развертывание в управляемом домене
В режиме управляемого домена службы запускаются на нескольких серверах, а серверы связаны с группой серверов. Развертывания серверов в одной группе серверов согласованы.
В режиме управляемого домена вам необходимо загрузить приложение для развертывания на контроллер домена, а затем развернуть его на одну или несколько групп серверов через контроллер домена.
Конечно, нам нужна только одна команда развертывания в среде cli на контроллере домена, чтобы выполнить два вышеуказанных шага.
Например, давайте создадим приложение с именем test-application.war и посмотрим, как его развернуть:
[domain@localhost:9990 /] deploy ~/Desktop/test-application.war
Either --all-server-groups or --server-groups must be specified.
[domain@localhost:9990 /] deploy ~/Desktop/test-application.war --all-server-groups
'test-application.war' deployed successfully.
При выполнении команды deploy вам необходимо указать имя серверных групп, на которые будет выполняться развертывание.Вы можете выполнить развертывание на все серверные группы, а можете указать некоторые определенные серверные группы:
[domain@localhost:9990 /] deploy ~/Desktop/test-application.war --server-groups=main-server-group,another-group
'test-application.war' deployed successfully.
После завершения развертывания мы можем просмотреть статус развертывания через cli:
[domain@localhost:9990 /] /server-group=main-server-group/deployment=test-application.war:read-resource(include-runtime)
{
"outcome" => "success",
"result" => {
"enabled" => true,
"name" => "test-application.war",
"managed" => true,
"runtime-name" => "test-application.war"
}
}
deploy можно добавить параметр --force для обновления или замены существующей версии программы:
[domain@localhost:9990 /] deploy ~/Desktop/test-application.war --all-server-groups --force
'test-application.war' deployed successfully.
Если вы хотите отменить развертывание, вы можете использовать undeploy:
[domain@localhost:9990 /] undeploy test-application.war --all-relevant-server-groups
Successfully undeployed test-application.war.
[domain@localhost:9990 /] /server-group=main-server-group:read-children-names(child-type=deployment)
{
"outcome" => "success",
"result" => []
}
После завершения развертывания в файл domain.xml будут добавлены или изменены две части, а именно развертывания и группы серверов:
[...]
<deployments>
<deployment name="test-application.war"
runtime-name="test-application.war">
<content sha1="dda9881fa7811b22f1424b4c5acccb13c71202bd"/>
</deployment>
</deployments>
[...]
<server-groups>
<server-group name="main-server-group" profile="default">
[...]
<deployments>
<deployment name="test-application.war" runtime-name="test-application.war"/>
</deployments>
</server-group>
</server-groups>
[...]
Управление расширенными файлами развертывания
Вообще говоря, если мы хотим создать или изменить файл развертывания приложения, мы можем переупаковать файл развертывания и повторно развернуть его.
Но иногда переупаковка всего приложения может быть сложной, и мы просто хотим изменить один или несколько определенных файлов в программе. Затем wildfly предоставляет командную строку для облегчения этой функции.
Чтобы изменить упакованный файл развертывания, первым шагом является расширение файла развертывания. Поскольку файлы развертывания обычно оканчиваются на ear and war, цель расширения состоит в том, чтобы распаковать их, чтобы мы могли изменить содержимое пакета.
Например, мы развернули файл kitchensink.ear, который теперь можно расширить с помощью следующей команды:
[domain@localhost:9990 /] /deployment=kitchensink.ear:explode()
Поскольку приведенная выше команда расширения не выполняется рекурсивно, если файл войны системы развертывания подсистемы включен в ухо, мы можем использовать путь для указания расширенной подсистемы:
[domain@localhost:9990 /] /deployment=kitchensink.ear:explode(path=wildfly-kitchensink-ear-web.war)
Развернув файл развертывания, мы можем использовать Browse-Content для просмотра списка файлов:
[domain@localhost:9990 /] /deployment=kitchensink.ear:browse-content(archive=false, path=wildfly-kitchensink-ear-web.war)
{
"outcome" => "success",
"result" => [
{
"path" => "META-INF/",
"directory" => true
},
{
"path" => "META-INF/MANIFEST.MF",
"directory" => false,
"file-size" => 128L
},
...
}
Если вы хотите увидеть описание определенного файла, вы можете использовать read-content:
[domain@localhost:9990 /] /deployment=kitchensink.ear:read-content(path=META-INF/MANIFEST.MF)
{
"outcome" => "success",
"result" => {"uuid" => "b373d587-72ee-4b1e-a02a-71fbb0c85d32"},
"response-headers" => {"attached-streams" => [{
"uuid" => "b373d587-72ee-4b1e-a02a-71fbb0c85d32",
"mime-type" => "text/plain"
}]}
}
Обратите внимание, что read-content может читать только дескриптор файла, а не содержимое файла.Если вы хотите прочитать содержимое файла, вы можете использовать отображение вложений:
[domain@localhost:9990 /] attachment display --operation=/deployment=kitchensink.ear:read-content(path=META-INF/MANIFEST.MF)
ATTACHMENT d052340a-abb7-4a66-aa24-4eeeb6b256be:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: mjurc
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_91
Вы также можете использовать команду сохранения вложения, чтобы скопировать содержимое файла развертывания в указанный каталог файлов:
[domain@localhost:9990 /] attachment save --operation=/deployment=kitchensink.ear:read-content(path=META-INF/MANIFEST.MF) --file=/tmp/example
File saved to /tmp/example
Мы можем использовать операцию добавления для создания пустого файла развертывания развертывания:
[domain@localhost:9990 /] /deployment=exploded.war:add(content=[{empty=true}])
Затем используйте add-content, чтобы добавить к нему файлы:
[domain@localhost:9990 /] /deployment=exploded.war:add-content(content=[{target-path=WEB-INF/classes/org/jboss/as/test/deployment/trivial/ServiceActivatorDeployment.class, input-stream-index=/home/demo/org/jboss/as/test/deployment/trivial/ServiceActivatorDeployment.class}, {target-path=META-INF/MANIFEST.MF, input-stream-index=/home/demo/META-INF/MANIFEST.MF}, {target-path=META-INF/services/org.jboss.msc.service.ServiceActivator, input-stream-index=/home/demo/META-INF/services/org.jboss.msc.service.ServiceActivator}])
Или используйте remove-content для удаления файлов в нем:
[domain@localhost:9990 /] /deployment=exploded.war:remove-content(paths=[WEB-INF/classes/org/jboss/as/test/deployment/trivial/ServiceActivatorDeployment.class, META-INF/MANIFEST.MF, META-INF/services/org.jboss.msc.service.ServiceActivator])
Очень удобно.
Развертывание в автономном режиме
Развертывание в автономном режиме похоже на развертывание в доменном режиме, за исключением того, что в автономном режиме нет понятия группы серверов.Давайте посмотрим, как развернуть и удалить:
[standalone@localhost:9990 /] deploy ~/Desktop/test-application.war
'test-application.war' deployed successfully.
[standalone@localhost:9990 /] undeploy test-application.war
Successfully undeployed test-application.war.
Автоматическое развертывание в автономном режиме
Ручное развертывание более проблематично, и вам нужно вручную вводить команды для завершения развертывания.Если подсистема развертывания-сканера уже существует в системе, то сканер будет регулярно сканировать файлы в автономном/развертывании для завершения автоматического развертывания.
Обратите внимание, что в производственных средах использование сканеров для развертывания не рекомендуется.
Мы можем более конкретно настроить deploy-scanner в файле standalone.xml:
<deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir"
path="deployments" auto-deploy-zipped="true" auto-deploy-exploded="false"/>
Marker Files
Файлы маркеров — это файл с тем же именем, что и файл развертывания, но с некоторыми суффиксами, добавленными к файлу развертывания, например: .dodeploy, .skipdeploy, .isdeploying, .deployed и т. д.
Более важными из них являются .dodeploy и .deployed.Мы можем вручную создавать или удалять эти файлы, чтобы контролировать развертывание системы.
Например, наш файл развертывания называется example.war, тогда мы можем передать:
cp target/example.war/ $JBOSS_HOME/standalone/deployments
touch $JBOSS_HOME/standalone/deployments/example.war.dodeploy
вручную развернуть файл example.war.
Также можно отменить развертывание приложения, удалив .deployed.
rm $JBOSS_HOME/standalone/deployments/example.war.deployed
Если появится $JBOSS_HOME/standalone/deployments/example.war.undeployed, это означает, что развертывание системы успешно отменено.
Управляемые и неуправляемые развертывания
wildfly поддерживает два режима развертывания: управляемое и неуправляемое развертывание.
Так называемое неуправляемое развертывание означает, что пользователь указывает путь к файлу для развертывания, и система напрямую считывает файл по пути.
Управляемое развертывание загружает файлы для развертывания во внутренний репозиторий, а затем использует содержимое этого репозитория для последующих операций развертывания.
Каталог файлов хранилища — это standalone/data/content или domain/data/content. Давайте посмотрим на формат файла хранилища:
ls domain/data/content/
|---/47
|-----95cc29338b5049e238941231b36b3946952991
|---/dd
|-----a9881fa7811b22f1424b4c5acccb13c71202bd
Давайте посмотрим на описание файла развертывания:
<deployments>
<deployment name="test-application.war"
runtime-name="test-application.war">
<content sha1="dda9881fa7811b22f1424b4c5acccb13c71202bd"/>
</deployment>
</deployments>
Вы можете видеть, что имя и кодировка sha1 файла развертывания указаны выше. WildFly в основном находит сохраненные файлы с помощью этой кодировки sha1.
По умолчанию мы используем команду deploy для развертывания управляемых приложений, мы можем развернуть неуправляемые приложения, добавив --unmanaged:
[standalone@localhost:9990 /] deploy ~/Desktop/test-application.war --unmanaged
'test-application.war' deployed successfully.
Это сохранит абсолютный путь к файлу в файле конфигурации и не будет вычислять хэш-значение файла.
Приложения против развертывания — это все одна и та же команда:
[standalone@localhost:9990 /] undeploy test-application.war
Successfully undeployed test-application.war.
Покрытие развертывания
Иногда нам нужно изменить некоторые файлы в развернутом приложении.Помимо распаковки приложения, мы также можем использовать команду deploy-overlay:
deployment-overlay add --name=myOverlay --content=/WEB-INF/web.xml=/myFiles/myWeb.xml,/WEB-INF/ejb-jar.xml=/myFiles/myEjbJar.xml --deployments=test.war,*-admin.war --redeploy-affected
Суммировать
Развертывание двух режимов wildfly здесь, вы можете выбрать в соответствии с вашими потребностями.
Автор статьи: о программе flydean
Ссылка на эту статью:Ву Ву Floyd Press.com/wild fly-app…
Источник этой статьи: блог flydean
Добро пожаловать на мой официальный аккаунт: самая популярная интерпретация, самая глубокая галантерея, самые краткие уроки и множество трюков, о которых вы не знаете, ждут вас!