发布时间:2018-10-26编辑:宋安阅读(767)
JBOSS集群一定用的是domain模式来去运行的,即$JBOSS_HOME/bin/domain.sh来运行的
vim domain/configuration/host.xml
将所有127.0.0.1的地址
换成master server对应的真实IP(否则,无法从远程通过浏览器,访问jboss 管理控制台)
保存退出
修改/etc/profile文件,配置环境变量
EAP_HOME=/DATA/jboss-eap-6.4.0 export EAP_HOME
配置生效:source etc/profile
echo $EAP_HOME
进入master jboss 控制台
以domain模式启动$JBOSS_HOME/bin/domain.sh
http://ip:9990/console/
首次进入,可能会提示没有创建管理员帐号,创建管理员
步骤如下:
先回到jboss 中,运行 $JBOSS_HOME/bin/add-user.sh
如图:
后面一路yes+回车即可,最后有一个加密字符串(QW1iLDEyMzQ=),最好记下来,因在slave 添加到master 的时候需要这个加密字符串
创建group、server
进入控制台后,可以看到jboss已经默认创建了一些group及server,先把他们全干掉吧(通常,我们会创建自己的group/server)
创建group时,profile选择full-ha (做jboss集群配置,负载均衡、智能容错时,需要使用ha系列的profile)
在master server上创建1个server
注:创建server时,有一个Port Offset选项(参考下图)
解释一下,默认情况下server的端口是8080,Port Offset指端口偏移量,如果按上图配置,Port Offset指定为n,则表示该server创建后,
对应的端口为8080+n,即808n端口 (可以用http://ip:808n / 来访问)
进入$JBOSS_HOME \domain\configuration,
将原来的host.xml改名备份,然后再将host-slave.xml复制一份,并改名为host.xml
修改host.xml
<management-interfaces> <native-interface security-realm="ManagementRealm"> <socket interface="management" port="${jboss.management.native.port:9999}"/> </native-interface></management-interfaces>
这里的9999端口,改成其它不使用的端口(比如:9099),否则slave server上的9999端口,与master server上的管理端口冲突,最后启动时,会报错
<domain-controller> <remote host="${jboss.domain.master.address:xxx.xx.xxx.xxx}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/></domain-controller>
从这边可以看到slave中有一个<domain-controller>段,在这个段内所指向的 ManagementRealm的IP与端口必须是它的master即Master主机中host.xml文件中的ManagementReal所设的IP与PORT。
<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,改成slave server的真实IP或0.0.0.0,否则slave上的应用,只能在slave本机访问
注意host.xml文件中的头部信息
<?xml version='1.0' encoding='UTF-8'?> <host name="slave1" xmlns="urn:jboss:domain:1.7">
不要忘了把<host后加入一个”name”,这边的name很重要!!!
BOSS集群有一个很重要的步骤,即:
加入每个MASTER的SLAVE,是以JBOSS中的用户名和密码来“认证”的,即每个SLAVE要加入Master,Master必须允许。
因此,此处的host name=“”就是SLAVE 用户名,那么密码呢?
请在JBOSS MASTER所在的目录中运行add-user.sh命令,然后建一个用户名,这个用户名必须是 slave的host.xml的 host标签后的name 值,另外,在建完用户后把该用户的密码(显示为MD5值)记下,然后在slave所在的host.xml文件中把密码设进去,按照如下例子:
因为JBOSS是以GROUP的概念来管理它的集群的
所以我们需要把我们的8080与8081这两台主机加入到一个GROUP中去。
在slave的host.xml文件中增加入下内容
<servers> <server name="slave1" group="APS-server-group-1" auto-start="true"> <socket-bindings socket-binding-group="full-ha" port-offset="1"/> </server><servers>
它的意思是将 slave1 这个服务添加到 APS-server-group-1 这个组里面,由这个组来管理
APS-server-group-1 为在master 控制台创建的组名
全部配完后分别使用命令把master和slave启动起来。
启动后我们打开主控端的WEB管理界面http://masterIP :9990,可以看到如下网络拓扑结构。