jboss eap 6 提供了两种操作模式:standalone(独立服务模式) 和managed domain(受管域).两种模式的主要区别在于对服务器的管理,而不是它们为满足最终用户请求而提供的功能。
Domain 模式
domain 模式是通过单个控制点来管理多个 jboss eap 6 实例的模式。集中管理的jboss eap 6 服务器集合被称作域的成员,域里所有的jboss eap 6 实例共享一个公共的管理策略,以及配置。
所有的jboss server 可以划分成不同的 server group(服务器组),每个server group可以包含若干 jboss server,在所有这些server中,指定一个作为主控制器,及 master server,其他的作为 slave server。
环境准备
windows7
jboss eap 6
两台机器 172.21.0.201 作为 master server,172.21.0.57 作为 slave server
安装jboss
两台机器分别安装 jboss eap 6,任意目录即可。下载地址
下面用 jboss_home="D:\Java\jboss-eap-6.3"
代替jboss 安装目录
master server 配置
修改host.xml
打开 "jboss_home\domain\configuration"
中的 host.xml
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:172.21.0.201}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:172.21.0.201}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:172.21.0.201}"/>
</interface>
</interfaces>
将其中的 127.0.0.1
替换成机器真是 ip,否则远程机器无法通过浏览器访问jboss 控制台
jboss_home\bin\domain.bat
以domain 模式启动 jboss
进入控制台 http://172.21.0.201:9990/console
首次进入会提示输入用户名密码,需要先创建一下,进入 jboss_home\bin\add-user.bat
根据提示创建账号密码。
创建 Group和Server
在控制台的 Domain Tab 页,可以看到默认的一些 group和server,先全部remove掉,然后创建自己的group 和server 如图
如果server 无法romve,可能是该server处于 started状态,需要先停掉,参考下图
创建的时候会有个 Port Offset
,即端口偏移量,默认端口是 8080
,比如这里设置成 1
,那么访问的时候 端口号就是 8081
Slave Server 配置
切换到Slave 机器(172.21.0.57) 进入 jboss domain 配置目录 jboss_home\domain\configuration
修改host.xml
修改host.xml,现将原来的host.xml 和 host-slave.xml 改名备份,再将host-slave.xml 改名为 host.xml,打开 host.xml
<management-interfaces>
<native-interface security-realm="ManagementRealm">
<!-- modify port or conflict with master port-->
<socket interface="management" port="${jboss.management.native.port:9099}"/>
</native-interface>
</management-interfaces>
修改其中的端口,改成其他不用的端口,不能与master server 的端口相同,否则会起冲突报错。
<domain-controller>
<remote host="${jboss.domain.master.address:172.21.0.201}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
</domain-controller>
将其中连接 master的地址改为 master server 的真实 ip,本文为 172.21.0.201
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
<interface name="unsecure">
<!-- Used for IIOP sockets in the standard configuration.
To secure JacORB you need to setup SSL -->
<inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>
</interface>
</interfaces>
将原先的 127.0.0.1
修改为0.0.0.0
或者本机真是IP
<servers>
<server name="slave-server-one" group="my-group-one">
<socket-bindings port-offset="2"/>
</server>
<server name="slave-server-two" group="my-group-two">
<!-- server-two avoids port conflicts by incrementing the ports in
the default socket-group declared in the server-group -->
<socket-bindings port-offset="3"/>
</server>
</servers>
手动给Slave Server 创建两个Server,并且指定group,group为master server上已经创建好的,同样指定port-offeset
最后给 Slave server 添加个名字,以便在 master server 控制台显示,如下
<host name="slave57" xmlns="urn:jboss:domain:1.6">
安全认证配置
切回到master server上,通过 jboss_home\bin\add-user.bat
添加一个名为 slave57
的管理员帐号,记住最后生成 密钥,如下图
再切回到 slave server上,将刚才的密钥添加到 host.xml 中 如下
<server-identities>
<!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->
<secret value="d2VibG9naWMxMjMh"/>
</server-identities>
好了,配置完了,依次以 domain 模式启动 master、slave 上的jboss,不出意外会在master 控制台看到名为 slave57
的 slave server
应用部署
部署一个最简单 hello world 例子试试,如图
将打包好的 war包上传,然后分配(assign)到任意一个 group即可,不出意外,通过相关 server group 下的 jboss server 就都可以访问了。本例中 两个group,6个server,如图
这样可以通过6个url都可以访问
- 172.21.0.57:8083/gotimp/
- 172.21.0.57:8082/gotimp/
- 172.21.0.201:8084/gotimp/
- 172.21.0.201:8083/gotimp/
- 172.21.0.201:8082/gotimp/
- 172.21.0.201:8081/gotimp/
总结
Domain模式的主要目的是使得多台jboss服务器的配置可以集中于一点,统一配置、统一部署。不同于群集(Cluster),群集的目标是让多台服务器分摊压力,当一台或多台服务器当机时,服务可以继续保持运转。