第 2 章 应用服务器管理
2.1. 启动和停止 JBoss EAP 6
2.1.1. 启动 JBoss EAP 6
2.1.2. 将 JBoss EAP 6 作为独立服务器启动
本节涵盖将 JBoss EAP 6 作为独立服务器启动的步骤
过程 2.1. 将平台服务作为独立服务器启动
对于红帽企业版 Linux。
运行命令:EAP_HOME/bin/standalone.sh
对于 Microsoft Windows 服务器。
运行命令:EAP_HOME\bin\standalone.bat
可选:指定其他的参数。
要查看传入启动脚本的其他参数,请使用-h
参数。
JBoss EAP 6 服务器实例已启动。
2.1.3. 将 JBoss EAP 6 作为受管域启动
域控制器必须在域里任何服务器组里的任何从服务器之前启动。先在域控制器上,然后在每个关联的主机控制器和其他主机上使用这个过程。
过程 2.2. 将平台服务作为受管域启动
对于红帽企业版 Linux。
运行命令:EAP_HOME/bin/domain.sh
对于 Microsoft Windows 服务器。
运行:EAP_HOME\bin\domain.bat
可选:传递其他参数到启动脚本里。
请使用-h
参数来获取传递到启动脚本里的参数列表。
JBoss EAP 6 受管域实例已启动。
2.1.4. 配置受管域里主机的名字
运行在受管域里的每个主机都必须有一个唯一的名称。为了简化管理并允许在多个主机上使用相同的主机配置文件,服务器将使用下列次序来确定主机名。
host.xml
配置文件里的host
元素的name
属性,如果指定了的话。jboss.host.name
系统属性的值。jboss.qualified.host.name
系统属性里最后一个句点(".")后的值,如果没有句点则是整个值。- 基于 POSIX 的操作系统的
HOSTNAME
环境变量或 Microsoft Windows 的COMPUTERNAME
环境变量里的句点(“.”)后的值,如果没有句点则是整个值。
过程 2.3. 使用系统属性配置主机名
- 打开主机配置文件,如
host.xml
。 - 找到
host
元素,例如:<host name="master" xmlns="urn:jboss:domain:1.6">
- 如果有这些内容,请删除
属性声明。name
="HOST_NAME"host
元素应该类似于下面的例子。<host xmlns="urn:jboss:domain:1.6">
- 用
-Djboss.host.name
参数启动服务器,例如:-Djboss.host.name=HOST_NAME
过程 2.4. 使用专有名称配置主机名
- 用下列语法启动 JBoss EAP 从主机:
例如:bin/domain.sh --host-config=HOST_FILE_NAME
bin/domain.sh --host-config=host-slave01.xml
- 启动管理 CLI。
- 使用下列语法来替代主机名:
例如:/host=EXISTING_HOST_NAME:write-attribute(name="name",value=UNIQUE_HOST_NAME)
你应该看到下面的结果。/host=master:write-attribute(name="name",value="host-slave01")
"outcome" => "success"
这修改了host-slave01.xml
文件里的host name
属性:<host name="host-slave01" xmlns="urn:jboss:domain:1.6">
- 您必须重新加载使用旧的主机名的服务器配置以完成这个过程。
例如:reload --host=EXISTING_HOST_NAME
reload --host=master
2.1.5. 在两台主机上创建受管域
注意
- IP1 = IP address of the domain controller (Machine 1)
- IP2 = IP address of the host (Machine 2)
过程 2.5. 在两台主机上创建受管域
在 Machine 1 上
- 使用 add-user.sh 脚本添加管理用户,例如
slave01
,让主机可以通过域控制器进行验证。请注意add-user
输出里的SECRET_VALUE
。 - 用
host-master.xml
配置文件启动域,它为指定的域控制器进行了预先配置。 - 用
-bmanagement=$IP1
使域控制器对于其他主机可见。[$JBOSS_HOME/bin]$ ./domain.sh --host-config=host-master.xml -bmanagement=$IP1
在 Machine 2 上
- 用用户凭证更新
$JBOSS_HOME/domain/configuration/host-slave.xml
文件。<?xml version='1.0' encoding='UTF-8'?> <host xmlns="urn:jboss:domain:1.6" name="slave01"> <!-- add user name here --> <management> <security-realms> <security-realm name="ManagementRealm"> <server-identities> <secret value="$SECRET_VALUE" /> <!-- use secret value from add-user.sh output--> </server-identities> ...
- 启动主机。
[$JBOSS_HOME/bin]$ ./domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=$IP1 -b=$IP2
现在我们可以管理域了。
通过 CLI:[$JBOSS_HOME/bin]$ ./jboss-cli.sh -c --controller=$IP1
通过 Web 控制台:http://$IP1:9990
访问服务器的索引页:http://$IP2:8080/ http://$IP2:8230/
2.1.6. 用替代配置启动 JBoss EAP 6
必须具备的条件
- 在使用替代配置文件之前,请将 default 配置作为模版使用。对于受管域,配置文件必须位于
EAP_HOME/domain/configuration/
目录。对于独立服务器,配置文件必须位于EAP_HOME/standalone/configuration/
目录。
注意
EAP_HOME/docs/examples/configs/
目录里包含了几个配置示例。请用这些例子来启用额外的功能,如群集或 Transactions XTS API。
过程 2.6. 用其他配置启动实例
独立服务器
对于独立服务器,请将配置文件的名称作为--server-config
参数的选项。配置文件必须位于EAP_HOME/standalone/configuration/
目录里,而且您需要指定相对这个目录的路径。例 2.1. 在红帽企业版 Linux 里对独立服务器使用其他的配置文件
[user@host bin]$
./standalone.sh --server-config=
standalone-alternate.xml
这个例子使用了EAP_HOME/standalone/configuration/standalone-alternate.xml
配置文件。例 2.2. 在 Microsoft Windows 服务器里对独立服务器使用其他的配置文件
C:\EAP_HOME\bin>
standalone.bat --server-config=
standalone-alternate.xml
这个例子使用了EAP_HOME\standalone\configuration\standalone-alternative.xml
配置文件。受管域
对于受管域,请为--domain-config
参数提供配置文件的名称。这个文件必须位于EAP_HOME/domain/configuration/
目录,且您需要指定相对这个目录的路径。例 2.3. 在红帽企业版 Linux 里对受管域使用其他的配置文件
[user@host bin]$
./domain.sh --domain-config=
domain-alternate.xml
这个例子使用了EAP_HOME/domain/configuration/domain-alternate.xml
配置文件。例 2.4. 在 Microsoft Windows 服务器里对受管域使用其他的配置文件
C:\EAP_HOME\bin>
domain.bat --domain-config=
domain-alternate.xml
这个例子使用了EAP_HOME\domain\configuration\domain-alternate.xml
配置文件。
使用替代配置运行了 JBoss EAP 6。
2.1.7. 停止 JBoss EAP 6
注意
过程 2.7. 停止 JBoss EAP 6 的实例
停止从命令提示交互式启动的实例。
在 JBoss EAP 6 运行的终端窗口里按 Ctrl-C。
过程 2.8. 停止作为操作系统服务启动的实例。
根据操作系统使用下列步骤。Red Hat Enterprise Linux
对于红帽企业版 Linux,如果您已经编写了服务脚本,请使用它的stop
功能。这需要编写到脚本里。然后您可以使用service scriptname stop
,这里的 scriptname 是脚本名称。Microsoft Windows Server
在 Microsoft Windows 里,使用net service
命令,或者通过控制面板里的 Services 小程序来停止服务。
过程 2.9. 停止在后台运行的示例(红帽企业版 Linux)
- 获取进程的 ID(PID):
如果只有一个实例在运行(独立模式)
下面的命令都会返回单个 JBoss EAP 6 实例的 PID:pidof java
jps
(jps
命令将返回两个进程的 ID:jboss-modules.jar
及 jps 自身。请使用jboss-modules.jar
的 ID 来停止 EAP 实例)
如果有多个 EAP 实例在运行(域模式)
有多个 EAP 实例运行时要确定正确的进程需要使用更复杂的命令。jps
命令可以使用冗余模式来提供 java 进程的更多信息。下面是确定不同 EAP 进程的冗余jps
命令的摘要,包括 PID 和角色:$ jps -v 12155 jboss-modules.jar -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1303m ... 12196 jboss-modules.jar -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1303m ... 12096 jboss-modules.jar -D[Host Controller] -Xms64m -Xmx512m -XX:MaxPermSize=256m ... 11872 Main -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -XX:+UseCodeCacheFlushing ... 11248 jboss-modules.jar -D[Standalone] -XX:+UseCompressedOops -verbose:gc ... 12892 Jps ... 12080 jboss-modules.jar -D[Process Controller] -Xms64m -Xmx512m -XX:MaxPermSize=256m ...
ps aux
命令也可以用来返回多个 EAP 实例的信息。下面是确定不同 EAP 进程的冗余ps aux
命令的摘要,包括 PID 和角色:$ ps aux | grep java username 12080 0.1 0.9 3606588 36772 pts/0 Sl+ 10:09 0:01 /path/to/java -D[Process Controller] -server -Xms128m -Xmx128m -XX:MaxPermSize=256m ... username 12096 1.0 4.1 3741304 158452 pts/0 Sl+ 10:09 0:13 /path/to/java -D[Host Controller] -Xms128m -Xmx128m -XX:MaxPermSize=256m ... username 12155 1.7 8.9 4741800 344224 pts/0 Sl+ 10:09 0:22 /path/to/java -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1000m -Xmx1000m -server - ... username 12196 1.8 9.4 4739612 364436 pts/0 Sl+ 10:09 0:22 /path/to/java -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1000m -Xmx1000m -server ...
在上面的例子里,Process Controller 进程是停止以停止整个域的进程。grep
工具可以和这些命令一起使用来确定 Process Controller:jps -v | grep "Process Controller"
ps aux | grep "Process Controller"
- 运行
kill PID
给进程发送TERM
信号,这里的 PID 是上面的命令确定的进程号。
每个方法都可以干净地关闭 JBoss EAP 6,所以不会丢失数据。
2.1.8. 服务器启动参数和开关参考
standalone.xml
、domain.xml
和 host.xml
配置文件里定义的其他配置启动。这可能包括用其他套接字绑定集或次级配置启动服务器。在启动时使用 help 开关可以参考这些可用的参数列表。
例 2.5.
-h
或 --help
开关。下表解释了 help 开关的结果。
[localhost bin]$ standalone.sh -h
[localhost bin]$ domain.sh -h
参数或开关 | 模式 | 描述 |
---|---|---|
--admin-only | 独立服务器模式 | 设置服务器的运行类型为 ADMIN_ONLY 。这将导致它打开管理接口并接受管理请求,但不会启动其他运行时服务或接受最终用户请求。 |
--admin-only | 域模式 | 设置主机控制器的运行类型为 ADMIN_ONLY 。这将导致它打开管理接口并接受管理请求,但不会启动其他运行时服务;如果这个主机控制器不是域的主控制器,将接受来自从主机控制器的转入连接。 |
-b <value> , -b=<value> | 独立服务器模式,域模式 | 设置系统属性 jboss.bind.address 为给定的值。 |
-b<interface>=<value> | 独立服务器模式,域模式 | 设置系统属性 jboss.bind.address.<interface> 为给定的值。 |
--backup | 域模式 | 保持持久性域配置的备份,即使这个主机不是域控制器。 |
-c <config> , -c=<config> | 独立服务器模式 | 要使用的服务器配置文件的名称。默认是 standalone.xml 。 |
-c <config> , -c=<config> | 域模式 | 要使用的服务器配置文件的名称。默认是 domain.xml 。 |
--cached-dc | 域模式 | 如果主机不是域控制器且在引导时无法联系域控制器,它将使用域配置的本地缓存备份。 |
--debug [<port>] | 独立服务器模式 | 激活调试模式并用可选参数来指定端口。只有启动脚本支持才可以使用。 |
-D<name>[=<value>] | 独立服务器模式,域模式 | 设置系统属性。 |
--domain-config=<config> | 域模式 | 要使用的服务器配置文件的名称。默认是 domain.xml 。 |
-h , --help | 独立服务器模式,域模式 | 显示帮助信息并退出。 |
--host-config=<config> | 域模式 | 要使用的主机配置文件的名称。默认是 host.xml 。 |
--interprocess-hc-address=<address> | 域模式 | 主机控制器侦听的与进程控制器通讯的地址。 |
--interprocess-hc-port=<port> | 域模式 | 主机控制器侦听的与进程控制器通讯的端口。 |
--master-address=<address> | 域模式 | 设置系统属性 jboss.domain.master.address 为给定的值。在默认的从主机控制器配置里,它被用来配置和主主机控制器进行原生通讯的地址。 |
--master-port=<port> | 域模式 | 设置系统属性 jboss.domain.master.port 为给定的值。在默认的从主机控制器配置里,它被用来配置和主主机控制器进行原生通讯的端口。 |
--read-only-server-config=<config> | 独立服务器模式 | 要使用的服务器配置文件的名称。它和 --server-config 和 -c 不同,因为原始文件不会被覆盖。 |
--read-only-domain-config=<config> | 域模式 | 要使用的域配置文件的名称。这和 --domain-config 和 -c 参数不同,因为初始文件不会被覆盖。 |
--read-only-host-config=<config> | 域模式 | 要使用的主机配置文件的名称。这和 --host-config 参数不同,因为初始文件不会被覆盖。 |
-P <url> , -P=<url> , --properties=<url> | 独立服务器模式,域模式 | 从给定的 URL 加载系统属性。 |
--pc-address=<address> | 域模式 | 进程控制器与其控制的进程通讯时侦听的地址。 |
--pc-port=<port> | 域模式 | 进程控制器与其控制的进程通讯时侦听的端口。 |
-S<name>[=<value>] | 独立服务器模式 | 设置安全属性。 |
--server-config=<config> | 独立服务器模式 | 要使用的服务器配置文件的名称。默认是 standalone.xml 。 |
-u <value> , -u=<value> | 独立服务器模式,域模式 | 设置系统属性 jboss.default.multicast.address 为给定的值。 |
-v , -V , --version | 独立服务器模式,域模式 | 显示应用服务器的版本并退出。 |