文章目录

  • 简介
  • wildfly的配置文件
    • extensions
    • profile
    • path
    • interface
    • socket-binding
    • management
  • 资源管理
  • 总结

简介

在上一篇文章我们介绍了wildfly 21的基本使用和管理界面。今天我们将会详细讲解一下wildfly的配置文件和资源管理。

wildfly的配置文件

不管是在standalone还是在domain模式下,有两个配置文件是非常重要的,他们是standalone.xml和domain.xml。

其他的standalone-*.xml可以参考standalone.xml来配置

我们看下standalone.xml的大体结构:

<server xmlns="urn:jboss:domain:14.0">
<extensions>
...
</extensions>
<management>
...
</management>
<profile>
...
</profile>
<interfaces>...
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">...
</socket-binding-group>
</server>

server主要有5部分,分别是extensions,management,profile,interfaces和socket-binding-group。

extensions

extensions表示的是核心应用程序之外的module。因为有了这些外部的module,所以wildfly核心应用程序是非常简单和轻量级的。

这些外部的module是放在modules文件夹的。我们可以通过使用extension标签来引用他们:

<extensions>[...]<extension module="org.jboss.as.transactions"/><extension module="org.jboss.as.webservices" /><extension module="org.jboss.as.weld" />[...]<extension module="org.wildfly.extension.undertow"/>
</extensions>

profile

profile是由多个subsystem组成的。subsystem是通过extension添加到核心服务器的一组新增的功能。

我们看一个profile和subsystem的例子:

<profile><subsystem xmlns="urn:jboss:domain:logging:8.0"><console-handler name="CONSOLE"><level name="INFO"/><formatter><named-formatter name="COLOR-PATTERN"/></formatter></console-handler><periodic-rotating-file-handler name="FILE" autoflush="true"><formatter><named-formatter name="PATTERN"/></formatter><file relative-to="jboss.server.log.dir" path="server.log"/><suffix value=".yyyy-MM-dd"/><append value="true"/></periodic-rotating-file-handler><logger category="com.arjuna"><level name="WARN"/></logger><logger category="io.jaegertracing.Configuration"><level name="WARN"/></logger><logger category="org.jboss.as.config"><level name="DEBUG"/></logger><logger category="sun.rmi"><level name="WARN"/></logger><root-logger><level name="INFO"/><handlers><handler name="CONSOLE"/><handler name="FILE"/></handlers></root-logger><formatter name="PATTERN"><pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/></formatter><formatter name="COLOR-PATTERN"><pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/></formatter></subsystem>
</profile>

上面的代码配置了一个jboss:domain:logging,设置了日志的格式,日志级别等信息。

基本上domain.xml和standalone.xml中的profile的内容是一样的,不同的是domain.xml中可以配置多个profile,而standalone.xml只能有一个profile。

path

在上面的日志配置中,我们在periodic-rotating-file-handler 中使用了 file的path属性。需要在path属性中指定日志文件的位置。

<file relative-to="jboss.server.log.dir" path="server.log"/>

这里我们使用的是server.log,实际上wildfly中有很多内置的path变量:

  • jboss.home.dir - WildFly的root目录

  • user.home - 用户的home目录

  • user.dir - 用户的当前工作目录

  • java.home - java安装目录

  • jboss.server.base.dir - server实例的root目录

  • jboss.server.config.dir - server实例的配置文件目录

  • jboss.server.data.dir - server实例的数据目录

  • jboss.server.log.dir - server实例的日志目录

  • jboss.server.temp.dir - server实例的temp目录

  • jboss.controller.temp.dir - controller实例的temp目录

  • jboss.domain.servers.dir - 在managed domain模式下,host controller为servers创建的工作目录

除了最上面的5个路径之外,用户可以自定义或者重写其他的内置路径:

<path name="example" path="example" relative-to="jboss.server.data.dir"/>

其中name表示的是path的名字,path是路径的值,如果没有relative-to就是绝对路径,带上relative-to就是相对路径。

relative-to表示的是相对路径的基准。

上面的格式只能在standalone.xml文件中使用。如果要在domain.xml中使用则必须下面的格式:

<path name="x"/>

这里的name只是对host.xml文件中的path定义的一个引用:

<path name="x" path="/var/x" />

interface

iterface表示的是网络接口,可以是hostname也可以是IP地址,是给后面的sockets绑定使用的。

我们看一个interface的例子:

    <interfaces><interface name="management"><inet-address value="${jboss.bind.address.management:127.0.0.1}"/></interface><interface name="public"><inet-address value="${jboss.bind.address:127.0.0.1}"/></interface></interfaces>

同样的,如果是在domain.xml中的interface标签只能包含name属性:

<interface name="internal"/>

这个引用是定义在host.xml中的。

socket-binding

socket-binding定义的是网络的出口,通过指定绑定的ip和接口,最终可通过该地址来访问相应的服务:

    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"><socket-binding name="ajp" port="${jboss.ajp.port:8009}"/><socket-binding name="http" port="${jboss.http.port:8080}"/><socket-binding name="https" port="${jboss.https.port:8443}"/><socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/><socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/><socket-binding name="txn-recovery-environment" port="4712"/><socket-binding name="txn-status-manager" port="4713"/><outbound-socket-binding name="mail-smtp"><remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}"/></outbound-socket-binding></socket-binding-group>

上面的例子中,我们定义了ajp,http,https的地址,并且还有几个管理端,事务,邮件的地址。

注意,我们有一个属性叫做port-offset,这个可以设置标准接口的偏移量,特别方便在标准接口被占用的情况下使用。

比如,我们默认的http端口是8080,如果这个端口已经被占用了,那么我们可以传入一个port-offset= 100,这样http端口就变成了8180,非常方便。

management

management是对wildfly管理端的配置,我们知道可以通过wildfly的web端或者cli端进行wildfly的管理。

我们看下management的定义:

    <management><security-realms><security-realm name="ManagementRealm"><authentication><local default-user="$local" skip-group-loading="true"/><properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/></authentication><authorization map-groups-to-roles="false"><properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/></authorization></security-realm></security-realms><audit-log><formatters><json-formatter name="json-formatter"/></formatters><handlers><file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/></handlers><logger log-boot="true" log-read-only="false" enabled="false"><handlers><handler name="file"/></handlers></logger></audit-log><management-interfaces><http-interface security-realm="ManagementRealm"><http-upgrade enabled="true"/><socket-binding http="management-http"/></http-interface></management-interfaces><access-control provider="simple"><role-mapping><role name="SuperUser"><include><user name="$local"/></include></role></role-mapping></access-control></management>

上面的例子中,我们通过management-interfaces指定了管理端的访问地址,和要使用到的安全策略。

在security-realms中,我们可以定义多种security-realm。在security-realm中可以定义用户信息和group信息。

资源管理

wildfly提供了两种资源管理的方式,一种就是通过web端http://host:9990/console ,一种就是通过命令行:

./bin/jboss-cli.sh
You are disconnected at the moment. Type 'connect' to connect to the server
or 'help' for the list of supported commands.
[disconnected /][disconnected /] connect
[standalone@localhost:9990 /]

web端大家应该都很清楚怎么使用,这里重点介绍一下命令行端的使用情况。

我们通过help --commands可以拿到命令行状态下可以执行的命令:

attachment                              deployment enable-all                   module                                  security enable-http-auth-http-server
batch                                   deployment info                         patch apply                             security enable-http-auth-management
cd                                      deployment list                         patch history                           security enable-sasl-management
clear                                   deployment undeploy                     patch info                              security enable-ssl-http-server
command                                 deployment undeploy-cli-archive         patch inspect                           security enable-ssl-management
command-timeout                         deployment-info                         pwd                                     security reorder-sasl-management
connect                                 deployment-overlay                      quit                                    set
connection-info                         echo                                    read-attribute                          shutdown
data-source                             echo-dmr                                read-operation                          try
deploy                                  for                                     reload                                  undeploy
deployment deploy-cli-archive           grep                                    run-batch                               unset
deployment deploy-file                  help                                    security disable-http-auth-http-server  version
deployment deploy-url                   history                                 security disable-http-auth-management   xa-data-source
deployment disable                      if                                      security disable-sasl-management
deployment disable-all                  jdbc-driver-info                        security disable-ssl-http-server
deployment enable                       ls                                      security disable-ssl-management

除此之外,命令行还对资源提供了一系列的操作符来对资源进行操作。

在wildfly中,可管理的对象都被看做是一个一个的资源,我们可以通过资源的路径来访问到这个资源。

比如,我想看一下server下面名字是default-server的资源,则可以这样:

 /server=default-server

资源路径可以连写,比如:

/subsystem=undertow/server=default-server/http-listener=default

这些都是有效的资源路径。

有了资源路径,我们还需要提供操作符来对资源进行操作,wildfly提供了下面的操作符:

addread-attributeread-children-namesread-children-resourcesread-children-typesread-operation-descriptionread-operation-namesread-resourceread-resource-descriptionremovevalidate-addresswrite-attribute

我们可以在操作符前面加上冒号,来具体使用他们:

/subsystem=logging:read-operation-names

上面的例子将会获取对logging子系统的操作符:

{"outcome" => "success","result" => ["add","list-add","list-clear","list-get","list-log-files","list-remove","map-clear","map-get","map-put","map-remove","query","read-attribute","read-attribute-group","read-attribute-group-names","read-children-names","read-children-resources","read-children-types","read-log-file","read-operation-description","read-operation-names","read-resource","read-resource-description","remove","undefine-attribute","whoami","write-attribute"]
}

总结

本文讲解了wildfly的配置文件和资源管理相关的操作,希望大家能够喜欢。

本文作者:flydean程序那些事

本文链接:http://www.flydean.com/wildfly-config-resource/

本文来源:flydean的博客

欢迎关注我的公众号:「程序那些事」最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

wildfly 21的配置文件和资源管理相关推荐

  1. wildfly 21中应用程序的部署

    文章目录 简介 Managed Domain中的部署 管理展开的部署文件 standalone模式下的部署 standalone模式下的自动部署 Marker Files 受管理的和不受管理的部署 部 ...

  2. wildfly 21的domain配置

    文章目录 简介 wildfly模式简介 domain controller的配置 Host controller的配置文件 忽略域范围的资源 Server groups Servers 总结 简介 w ...

  3. 在wildfly 21中搭建cluster集群

    文章目录 简介 下载软件和相关组件 配置domain 创建应用程序 部署应用程序 集群配置 总结 简介 wildfly是一个非常强大的工具,我们可以轻松的使用wildfly部署应用程序,更为强大的是, ...

  4. wildfly mysql_MySQL作为Kubernetes服务,可从WildFly Pod访问

    wildfly mysql Kubernetes上使用Vagrant的Java EE 7和WildFly(技术提示#71)介绍了如何在使用Kubernetes和Docker托管的WildFly上运行琐 ...

  5. MySQL作为Kubernetes服务,可从WildFly Pod访问

    Kubernetes上使用Vagrant的Java EE 7和WildFly(技术提示#71)介绍了如何在使用Kubernetes和Docker托管的WildFly上运行琐碎的Java EE 7应用程 ...

  6. JBoss/Wildfly 配置SQLserver服务器

    JBoss/Wildfly 配置SQLserver服务器 http://blog.csdn.net/haitaolang/article/details/60467118 wildfly standa ...

  7. linux mysql 端口配置文件_linux虚拟机中各服务端口及配置文件路径

    查询端口状况命令: netstat -an| grep 端口号 查询服务状态(服务是否开启)命令:systemctl  status 服务名 开启服务命令:systemctl  start  服务名 ...

  8. 走在网页游戏开发的路上——页游资源管理

    本文原创版权归 博客园 吴秦 所有,如有转载,请按如下方式详细标明原创作者及原文出处,以示尊重! 作者:吴秦 出处:http://www.cnblogs.com/skynet/ 本文基于署名 2.5 ...

  9. 七下计算机资源管理教学设计,《个人数字化信息资源管理》教学设计2篇

    <个人数字化信息资源管理>教学设计1 一.教材依据 本节是教育科学出版社<信息技术基础(必修)>第七章第二节内容.<课程标准>中对本节内容与上一节合共提了一点标准, ...

最新文章

  1. 【RHCE学习笔记】基于安全的NFS认证(kerberos)
  2. 使用logrotate做nginx日志分割
  3. 安卓进阶系列-07数据库框架(GreenDAO)的使用
  4. 快速删除node_modules文件夹!!!
  5. MySQL技术内幕 InnoDB存储引擎【一】
  6. LRUCache和FastLRUCache实现分析
  7. 计算机中间层怎么解决,电脑中间层服务器地址怎么看
  8. Spring实现数据库读写分离
  9. ArcGIS10.2最新全套下载地址
  10. AEAI CRM 客户关系管理系统项目介绍
  11. PHP连接并使用人大金仓数据库kingbase
  12. 零基础小白怎么自学UI设计?自学UI设计有什么方法?
  13. Unity3D教程:2D游戏技能特效
  14. 01git创建本地仓库及操作入门
  15. 读书笔记软件调试之道 :从大局看调试-发现代码存在问题
  16. 树莓派8:树莓派控制继电器
  17. 安全知识普及--总结什么是网络安全
  18. CPU Cache下的伪共享和缓存行
  19. vivado执行报错number of unplaced terminals is greater than number of available sites
  20. 去除字符串中特殊表情--正则

热门文章

  1. mysql innodb索引覆盖_Mysql InnoDB 覆盖索引与回表
  2. C语言/C++基础知识
  3. C++虚继承(七) --- 虚继承对基类构造函数调用顺序的影响
  4. VC程序初始化隐藏窗体
  5. C++中的指针与引用
  6. 时钟源为什么会影响性能
  7. 【线上分享】短视频出海 — 用户体验衡量关键指标与优化策略
  8. 云游戏之大冒险:5G,等还是不等 | 专访云格致力陈浩
  9. 谷沉沉:专注视频技术十几年
  10. Linux下进程间通信方式——信号量(Semaphore)