JBOSS系列(六)--负载均衡

        如果要实现JBoss各节点的负载均衡就需要在集群前置负载均衡器,均衡器是所有请求的入口,将请求按照定义的负载规则分配到各节点。负载均衡器可以实现故障转移和状态同步。我选择目前比较流行的Apache Http Server作为集群中的负载均衡器,通过mod_jk插件与Jboss节点通讯。


1、从官网下载binary文件

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

 

2、解压安装

将下载下来的文件解压到Master Server上,以我的为例,解压到C:\mod-cluster

2.1 执行C:\mod-cluster\httpd-2.2\bin\installconf.bat生成默认配置

2.2 修改C:\mod-cluster\httpd-2.2\conf\httpd.conf

2.2.1  40行

<span style="font-size:14px;"><span style="font-size:14px;">#Listen 12.34.56.78:80
Listen 80</span></span>

把8080改为80,去掉端口号

2.2.2 164行

<span style="font-size:14px;"><span style="font-size:14px;">ServerName 192.168.24.17:80</span></span>

改为master Server的ip

 

2.2.3文件的最后部分

# MOD_CLUSTER_ADDS

# Adjust to you hostname and subnet.

<IfModule manager_module>

  Listen 192.168.24.17:6666

  ManagerBalancerName mycluster

  <VirtualHost 192.168.24.17:6666>

    <Location />

     Order deny,allow

     #Deny from all

     Allow from all

    </Location>

 

    KeepAliveTimeout 300

    MaxKeepAliveRequests 0

    #ServerAdvertise on http://127.0.0.1:6666

    AdvertiseFrequency 5

    #AdvertiseSecurityKey secret

    #AdvertiseGroup 224.0.1.105:23364

    EnableMCPMReceive

 

    <Location /mod_cluster_manager>

       SetHandler mod_cluster-manager

       Order deny,allow

       #Deny from all

       Allow from all

    </Location>

 

  </VirtualHost>

</IfModule>

 

注意上面标红的地方都是需要修改的。IP改为Master Server的IP。两个Deny from all注释掉。把紧贴着的一行改为Allow from all

2.3 将httpd安装成windows服务

Cmd 命令

JBOSS系列(六)--负载均衡_第1张图片

运行上面两个命令,即注册成功。

2.4浏览

访问地址:http://192.168.24.17:6666/mod_cluster_manager

JBOSS系列(六)--负载均衡_第2张图片

         注意:我先在以domain模式开着jboss,所以能看到好多节点,如果没有开着Jboss只能看到第一个节点。这个界面出来表示配置成功,如果没有出来,检查一下jboss master server中创建的group,对应的profile是否为full-ha

3 、负载均衡

上面已经部署了war,所以直接可以用

http://192.168.24.17/itoo-base-cgform-all/cgFormHeadController.do?cgFormHeadList#来访问了,apache会智能转发到6个节点中的某一个,如果访问正常,说明负载均衡已经生效。

JBOSS系列(六)--负载均衡_第3张图片


1)继续把其他server停掉几台,再继续访问http://192.168.24.42:8083/itoo-base-cgform-all/cgFormHeadController.do?cgFormHeadList#

网址

JBOSS系列(六)--负载均衡_第4张图片

现在关掉了5个,访问一下网址看一下:

JBOSS系列(六)--负载均衡_第5张图片


2)仍然正常,说明某几个node损坏并不影响正常使用,即容错成功。所有的server关掉后,在访问这个网址则将无法访问。

JBOSS系列(六)--负载均衡_第6张图片

现在这6个server都关掉了,访问一下网址:

JBOSS系列(六)--负载均衡_第7张图片

访问不到了。说明负载均衡已经生效了。


总结

        负载均衡解决了服务器压力大的问题,让一台服务器的压力分散到各服务器。它屏蔽了用户的差异性,让用户感觉不到各台服务器的存在。从用户的角度来说,提高了用户的可用性,降低维护成本,提高可维护性。


你可能感兴趣的:(JBOSS系列(六)--负载均衡)