首页 > 代码库 > linux下jboss eap 6.3 集群(cluster)配置

linux下jboss eap 6.3 集群(cluster)配置

jboss eap 6.3 集群(cluster)配置

上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡、容错。

mod_clusterjboss的一个开源集群模块(基于apache 2.2.x),官网地址为http://mod-cluster.jboss.org/ ,下面是使用步骤:

 

一、从官网下载binary文件

http://mod-cluster.jboss.org/downloads/1-2-6-Final-bin 这上面有各种OS的版本,本文以windows为试验环境,应该下载mod_cluster-1.2.6.Final-linux2-x64-ssl.tar.gz 这个版本

 

二、解压安装

将下载下来的文件解压到jboss masterserver机器上的某个目录(假定master serverIP172.21.129.181),比如/usr/local/ ,生成licensesopt的目录,mod_cluster其实就是一个包含集群模块的apache server,如果你的机器上之前有安装过apache server,强烈建议先卸载,(也可不卸载但是确保启动的是mod_cluster-1.2.6.Final-linux2-x64-ssl.tar.gz 也就是/usr/local/opt/jboss/sbin/apachectl内的apache)否则启动mod_cluster对应的apache时,有可能启动的是之前的版本。

2.1 先执行opt/jboss/httpd/sbin/installhome.sh 生成默认配置

2.2 修改/usr/local/opt/jboss/httpd/httpd/conf/httpd.conf

a)

#Listen 12.34.56.78:80

Listen 80

40行,把原来的端口8000,改成80,这样方便直接用 http://172.21.129.181/xxx 来访问应用

b)

164行改成

ServerName 172.21.129.181:80

c)

最后的mod_cluster部分,参考下面修改

技术分享

# MOD_CLUSTER_ADDS

# Adjust to youhostname and subnet.

<IfModule manager_module>

  Listen 172.21.129.181:6666

  ManagerBalancerName mycluster

  <VirtualHost 172.21.129.181:6666>

    <Location />

     Order deny,allow

     Deny from all

     Allow from all

    </Location>

 

    KeepAliveTimeout 60

    MaxKeepAliveRequests 0

#ServerAdvertiseon http://IP@:6666

ServerAdvertise on

    AdvertiseFrequency 5

    #AdvertiseSecurityKey secret

#AdvertiseGroup224.0.1.105:23364

ManagerBalancerNamemodcluster

EnableMCPMReceiveon

AllowDisplay On

 

    <Location /mod_cluster_manager>

       SetHandler mod_cluster-manager

       Order deny,allow

       Deny from all

       Allow from all

    </Location>

 

  </VirtualHost>

</IfModule>

技术分享

主要是把127.0.0.1,改成master server对应的真实IP,另外把Deny from all注释掉,把紧贴着的一行改成Allow from all,去掉这些访问上的限制

ServerAdvertise说明

ServerAdvertise On 时系统自动接受有效地jboss server声明。

                   domain.xmlmodcluster段有mutilcast-address配置。是一个广播地址。sever通过这个广播地址

                   告诉mod_cluster 组件自己存在。

ServerAdvertise Off 或者不在一个广播域,那么就需要设置proxies地址,告诉jboss server 去哪里向http报告自己的状态

                   也在domain.xml中设置。不过可以在界面设置。

                   profiles(右上)--〉选择ha (左上)profile--subsystem --> web --> mod_cluster-->proxies设置
2.3 启动apache

/usr/local/opt/jboss/sbin/apachectl start

不会有任何提示并且

浏览http://172.21.129.181看到

技术分享代表apache启动成功。

顺利的话,浏览http://172.21.129.181:6666/mod_cluster_manager 应该能看到类似以下界面:

技术分享

这是很关键的一个界面,用来管理/监控所有节点,如果没成功,请仔细检查前面的步骤是否有误。

 

三、以domain模式启动所有jboss master/slave server

参考上一篇的做法,启动jboss masterserver / slave server,完成后,刷新http://172.21.129.181:6666/mod_cluster_manager,会看到多出了好多节点

技术分享

如果没有新的节点显示在该界面,检查jboss master server中创建的group,对应的profile是否为full-haha

点击相关的链接,还能看到更详细的信息

技术分享

下面是点击 show INFOoutput后的内容:

Node: [1],Name:d2c49277-af22-32b1-95be-b70e3ff20237,Balancer: mycluster,LBGroup: ,Host:172.21.129.128,Port: 8010,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered: 0,Connected: 0,Load: 100

Node: [2],Name:708b3ee3-fd4d-39eb-b24c-3384bd11958c,Balancer: mycluster,LBGroup: ,Host:172.21.129.128,Port: 8009,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered: 0,Connected: 0,Load: 100

Node: [3],Name: c4051fb6-9cc9-30aa-967b-6ba1294026b8,Balancer:mycluster,LBGroup: ,Host: 172.21.129.181,Port: 8011,Type: ajp,Flushpackets:Off,Flushwait: 10,Ping: 10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered:0,Connected: 0,Load: 100

Node: [4],Name:17181717-8b5c-3289-b6ea-fedcee2a27cb,Balancer: mycluster,LBGroup: ,Host:172.21.129.181,Port: 8012,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 3,Read: 3355,Transfered: 0,Connected: 0,Load: 100

Node: [5],Name:2465cf8d-9cb0-3248-b335-09c02f13b6fe,Balancer: mycluster,LBGroup: ,Host:172.21.129.181,Port: 8009,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered: 0,Connected: 0,Load: -1

Node: [6],Name:68a1e90f-6645-38e0-8157-219ab2004148,Balancer: mycluster,LBGroup: ,Host:172.21.129.181,Port: 8010,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered: 0,Connected: 0,Load: -1

Node: [7],Name:b403bcec-5eb5-37a2-a956-51d273b87548,Balancer: mycluster,LBGroup: ,Host:172.21.129.57,Port: 8011,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered: 0,Connected: 0,Load: 100

Node: [8],Name:6e5ac603-5f19-3c90-8f97-d0bf01124c94,Balancer: mycluster,LBGroup: ,Host:172.21.129.57,Port: 8012,Type: ajp,Flushpackets: Off,Flushwait: 10,Ping:10,Smax: 65,Ttl: 60,Elected: 0,Read: 0,Transfered: 0,Connected: 0,Load: 100

Vhost: [2:1:1], Alias:example.com

Vhost: [2:1:2], Alias:localhost

Vhost: [2:1:3], Alias:default-host

Vhost: [4:1:4], Alias:default-host

Vhost: [4:1:5], Alias:localhost

Vhost: [4:1:6], Alias:example.com

Vhost: [1:1:7], Alias:example.com

Vhost: [1:1:8], Alias:localhost

Vhost: [1:1:9], Alias:default-host

Vhost: [3:1:10],Alias: default-host

Vhost: [3:1:11], Alias:localhost

Vhost: [3:1:12],Alias: example.com

Vhost: [6:1:13],Alias: localhost

Vhost: [6:1:14],Alias: default-host

Vhost: [7:1:15],Alias: example.com

Vhost: [8:1:16],Alias: example.com

Vhost: [8:1:17],Alias: localhost

Vhost: [8:1:18],Alias: default-host

Vhost: [7:1:19],Alias: localhost

Vhost: [7:1:20],Alias: default-host

Context: [2:1:1],Context: /SSO, Status: ENABLED

Context: [4:1:2],Context: /SSO, Status: ENABLED

Context: [1:1:3],Context: /SSO, Status: ENABLED

Context: [3:1:4],Context: /SSO, Status: DISABLED

Context: [7:1:5],Context: /SSO, Status: ENABLED

Context: [8:1:6],Context: /SSO, Status: ENABLED

 注意一下:虽然我们有8jboss server,但是mod_cluster貌似最多只能支持6node的负载均衡,有2node的转发因子是-1,即未生效(但大多数情况下,已经够用了)mod_cluster还有其它一些限制,详情可参考http://docs.jboss.org/mod_cluster/1.2.0/html_single/#d0e85

 

四、负载均衡、容错验证

在上一篇里,已经在my-group-1my-group-2上部署了一个名为SSO的应用,现在可以直接用http://172.21.129.181/SSO/ 来访问了,apache会智能转发到6个节点中的某一个,如果访问正常,说明负载均衡已经生效。

继续把其它server停掉几台,再继续访问http://172.21.129.181/SSO/ ,如果仍然正常,说明某几个node损坏,并不影响正常使用,即容错成功。

所有servershutdown后,http://172.21.129.181/SSO/ 将无法访问。

 技术分享

最后附一张:架构图




原作者:紫云飘雪  http://9388567.blog.51cto.com/9378567/1593548

参考文章:菩提树下的杨过  http://yjmyzz.cnblogs.com

对其进行更改,菩提树下的杨过是基于windows的环境搭建





linux下jboss eap 6.3 集群(cluster)配置