jboss-eap-6.3.0 (Domain)模式+mod_cluster-1.2.6  集群环境配置

 

.环境准备.

   系统: centos 6.5_x64

    

 jboss-node1.example.com:   192.168.0.140   (master)

 jboss-node2.example.com:   192.168.0.141   (slave)

 jboss-node3.example.com:   192.168.0.142   (slave)

注意:三台机器iptables 关闭selinux 关闭

所有软件包存放位置:  /usr/local/src/

软件下载地址:

1. jboss-eap

jboss-eap-6.3.0.zip

#下载地址

http://www.jboss.org/downloads/    #需要输入redhat账户密码,没有的话可以注册个

 

 

2.jdk:

jdk-6u45-linux-x64.bin 我这里用的比较老,java环境,各位可以到官网下载rpm包安装即可

#下载地址  

www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

 

3.mod-cluster

 mod_cluster-1.2.6.Final-linux2-x64-ssl.tar.gz    #这个主要做负载均衡器只部署在master

#下载地址

http://mod-cluster.jboss.org/
本次试验,软件包下载地址  链接:http://pan.baidu.com/s/1gd8b0l1 密码:7enz

 

 

安装前导读:

jboss提供了二种运行模式:standalone(独立运行模式)、domain(域模式),日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。

domain模式正是为了解决这一问题,该模式下,所有jboss server可以划分成不同的group(注:这里的jboss server并不一定要对应某台物理机或虚拟机,一个os上,可以同时run多个jboss server实例,所以本文中的jboss server均指某个运行中的jboss server instance),每个group中可以包含多个jboss server,所有这些jboss server中,可以指定一台做为域控制器(domain controller),俗称master server,其它jboss server均为Home Controller(俗称slave server)。

master上可以控制所有jboss server,并监控其运行情况,部署应用时,一个war包,只需要部署到group上,该group中的所有jboss server即会同步自动部署。

 

 

.环境配置

 

(master)  节点配置

1. jboss-node1.example.com:   192.168.0.140   (master)  节点配置

[root@jboss-node1 src]#  cd /usr/local/src/

[root@jboss-node1 src]# ./jdk-6u45-linux-x64.bin 

[root@jboss-node1 src]#  cp   -rp  jdk1.6.0_45/  /usr/

 

2.配置java 环境变量:

[root@jboss-node1 src]# vi /etc/profile 

export JAVA_HOME=/usr/jdk1.6.0_45 

export PATH=$PATH:$JAVA_HOME/bin 

export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar 

[root@jboss-node1 src]# source  /etc/profile 

3.安装配置jbossmaster
[root@jboss-node1 src]# yum install unzip -y

[root@jboss-node1 src]# unzip  jboss-eap-6.3.0.zip

[root@jboss-node1 src]# cp -rp  jboss-eap-6.3 /usr/local/

[root@jboss-node1 src]# vi /usr/local/jboss-eap-6.3/domain/configuration/host.xml 

将所有127.0.0.1的地址,换成master server对应的真实IP(否则,无法从远程通过浏览器,访问jboss 管理控制台)

在命令模式下输入下面命令,替换ip

:%s/127.0.0.1/192.168.0.140/g 

保存退出

添加管理员账户

[root@jboss-node1 src]# cd /usr/local/jboss-eap-6.3/bin 

[root@jboss-node1 bin]# ./add-user.sh   #添加管理员账户,否则我们无法登陆控制台

admin     redhat!@#123

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
修改cluster连接密码,这个密码跟我们后面添加的slave server用户密码必须一致,否则 会报错

[root@jboss-node1 ~]# vi /usr/local/jboss-eap-6.3/domain/configuration/domain.xml 

修改为:

 

 

 

启动master      ./domain.sh    

[root@jboss-node1 src]#  vi /root/start_master.sh 

启动脚本:

#!/bin/bash

nohup    /usr/local/jboss-eap-6.3/bin/domain.sh >/root/jboss.log 2>&1 &

[root@jboss-node1 src]#  chmod  +x  /root/start_master.sh 

[root@jboss-node1 src]#  /root/start_master.sh 

 

 

4.web 控制台访问地址

http://192.168.0.140:9990/console/       #输入添加的管理员账户秘密登陆即可

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

5.创建groupserver

进入控制台后,可以看到jboss已经默认创建了一些groupserver,我们需要创建自己的,这些都可以删掉


JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP 

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
创建
group时,profile建议选择full-ha (以后会讲如何做jboss集群配置,负载均衡、智能容错时,需要使用full-ha profile)

 

 

创建server时,有一个Port Offset选项

 

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

解释一下,默认情况下server的端口是8080,Port Offset指端口偏移量,如果按上图配置,Port Offset指定为5,则表示该server创建后,对应的端口为8080+5,即8085端口 (可以用http://192.168.0.140:8085/ 来访问)

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

默认有几个分组,我们可以在这里把分组停掉,然后在Server Configurations  里面删除即可

 

 

 

Slave 节点配置

 

1.两台slave java环境安装,和jboss环境安装和master一样,参照上边的安装

2.配置  jboss  slave  server

注意:将原来的host.xml改名备份,然后再将host-slave.xml复制一份,并改名为host.xml

 

[root@jboss-node2 configuration]# cd /usr/local/jboss-eap-6.3/domain/configuration/

[root@jboss-node2 configuration]# cp host.xml  host.xml.bak 

[root@jboss-node2 configuration]# cp host-slave.xml  host.xml 

修改 host.xml

修改1处

  

这里的9999端口,改成其它不使用的端口(比如:9099),否则slave server上的9999端口,与master server上的管理端口冲突,最后启动时,会报错

修改2处 

  

指定master server的IP(本文中为192.168.0.140),这样slave在启动时,才知道去连哪一台master

修改3处

   

原来的127.0.0.1,改成slave server的真实IP或0.0.0.0,否则slave上的应用,只能在slave本机访问

修改4处

   

手动在slave上创建一个server,并加入到my-group-1(注:group的值,必须是在master server上创建过的,否则启动时,slave上的server无法正常加入到master相关的group)

 

修改 5 处

 

slave57" xmlns="urn:jboss:domain:1.6">

 

最开头的host节点上,加一个name="xxx"的属性(本文中为slave57),这个name值最终会显示在master server的jboss 控制台中,建议起一个容易识别的名称

修改 6处

安全认证

4.1 回到master server上,添加一个名为slave57的管理员帐号,并记住最后生成的的字符串(xxx为密码经过base64处理后的内容)账户名 slave1  密码 

 redhat!@#123 还是用之前master的 添加用户的脚本,切记,必须得在master上添加这个用户,slave连接到master全凭借这个用户认证连接

添加到 slave   host.xml 文件

 

                 

解释:slave启动时,需要连接注册到master的jboss中,连接过程需要安全认证,这里的secret相当于认证的钥匙,而认证的用户名即为:正在连接的slave机器上jboss中host.xml中这个节点中的name值,所以 需要在master中创建一个名为slave57”的管管理账户

 

启动slave  

[root@jboss-node2 bin]#     vi /root/start_node2.sh  

启动脚本:

#!/bin/bash

nohup    /usr/local/jboss-eap-6.3/bin/domain.sh >/root/jboss.log 2>&1 &

[root@jboss-node2 bin]#    chmod  +x /root/start_node2.sh 

[root@jboss-node2 bin]#   /root/start_node2.sh

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
依次添加,其他节点

两个节点已经全部添加

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

 

 

 

mod_cluster-1.2.6 负载均衡器配置

1.解压出软件

[root@jboss-node1 src]# tar -zxvf mod_cluster-1.2.6.Final-linux2-x64-ssl.tar.gz 

[root@jboss-node1 src]# cp -rp opt/jboss/  /opt/   #配置文件默认写的就是/opt

[root@jboss-node1 src]# cd /opt/jboss/httpd/httpd/ conf

[root@jboss-node1 ~]#  vi  /opt/jboss/httpd/httpd/conf/httpd.conf 

点击(此处)折叠或打开

  1. # MOD_CLUSTER_ADDS
  2. # Adjust to you hostname and subnet.
  3. <IfModule manager_module>
  4.   Listen 192.168.0.140:6666
  5.   ManagerBalancerName mycluster
  6.   <VirtualHost 192.168.0.140:6666>
  7.    <Location />
  8.      Order deny,allow
  9.      #Deny from all
  10.      Allow from all
  11.     </Location>
  12.     KeepAliveTimeout 300
  13.     MaxKeepAliveRequests 0
  14.     #ServerAdvertise on http://127.0.0.1:6666
  15.     AdvertiseFrequency 5
  16.     #AdvertiseSecurityKey secret
  17.     AdvertiseGroup 224.0.1.108:23333
  18.     AdvertiseBindAddress 224.0.1.108:23333

  19.  #AdvertiseGroup 和 AdvertiseBindAddress的配置尤为重要 #这里是我们的组播地址默认224.0.1.105:23364.需要改一下,如果我们一个内网环境,多个jboss集群,就会发送冲突,模块能扫描到其他项目的节点这里至关重要

  20.     EnableMCPMReceive
  21.     <Location /mod_cluster_manager>
  22.        SetHandler mod_cluster-manager
  23.        Order deny,allow
  24.        #Deny from all
  25.        Allow from all
  26.     </Location>
  27.   </VirtualHost>


这时候启动Apache 会有个报错
JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP

我们需要写一个hosts 解析   
[root@jboss-node1 ~]# vi    /etc/hosts  #添加本的解析
192.168.0.140            Jboss-node1.example.com

[root@jboss-node1 ~]#  vi  /opt/jboss/httpd/httpd/conf/httpd.conf 

#ServerName  改成这样启动就不会报错了

ServerName  Jboss-node1.example.com:80

2.修改jboss 配置让他连接我们的6666端口,由我们的模块代理这几台机器

3.master  修改连接并设置session黏贴

我们的session可以共享,这是集群工作的必须  

vi /usr/local/jboss-eap-6.3/domain/configuration/domain.xml  #修改前建议备份
 
改为:

 

                     

4.修改master  的广播地址 

我们配置master选择的是full-ha-sockets模式,我们需要修改这个段落,广播地址有两个,我们都改成不同的网段,231.7.7.7 改为231.7.7.8,224.0.1.105,改为224.0.1.108,端口改成23333默认值23364 我们必须得更改这个,不然影响其他集群

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

5.selave 修改连接,并设置session黏贴 

vi /usr/local/jboss-eap-6.3/domain/configuration/domain.xml  #修改前建议备份

  
改为:

  
6.修该slave  的广播地址 

我们配置master选择的是full-ha-sockets模式,我们需要修改这个段落,,广播地址有两个,我们都改成不同的网段,231.7.7.7 改为231.7.7.8,224.0.1.105,改为224.0.1.108,端口改成23333默认值23364 我们必须得更改这个,不然影响其他集群

 

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

注意:修改之后,master  和,其他节点,都要重新启动

启动  mod_cluster 代理 

[root@jboss-node1 ~]#   /opt/jboss/httpd/sbin/httpd    
访问web界面 

http://192.168.0.140:6666/mod_cluster_manager

 


JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP

我们的模块由此配置,不会影响到内网其他集群,如果不这样配置,mod_cluster 默认广播到任何节点,只要安装有jboss 他都会扫描到,多集群部署就会给我们带来困扰
JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP

比如这样的报错,就是其他集群尝试连接这个模块,认证失败导致的报错

 

三.部署软件包测试集群。

 

 jboss 控制台,点击 “Manage Deployments

添加软件包

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

点击 Assign  分发到组里面所有机器


 JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP

如果包没问题,日志会提示,包已部署

JBoss-eap-6.3.0 域(Domain)模式+mod_cluster-1.2.6 集群环境配置-LMLPHP
 

登陆测试

参考文档:

http://www.cnblogs.com/yjmyzz/p/jboss-eap-domain-configuration.html

软件包下载地址  链接:http://pan.baidu.com/s/1gd8b0l1 密码:7enz

 

 

 

12-09 19:45