搭建高性能Jboss负载均衡集群

版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/a1314517love/article/details/26836357

负载均衡集群是由两台或者两台以上的server组成。

分为前端负载调度和后端服务两个部分。负载调度部分负载把client的请求依照不同的策略分配给后端服务节点,而后端节点是真正提供营养程序服务的部分。

与双机热备不同的是,负载均衡集群中,全部的后端节点都处于活动动态。它们都对外提供服务,分摊系统的工作负载。

负载均衡集群能够把一个高负荷的应用分散到多个节点共同完毕,适用于业务繁忙、大负荷訪问的应用系统。负载均衡集群的一大长处除了将大负荷进行分摊解决性能问题之外,他还有极强的出错互补机制,每个提供服务的节点在出现故障之后宕机之后,调度系统都会自己主动将这台宕机机器剔除,当该节点又一次启动恢复功能之后。调度系统又会将其增加到集群中。而这一切。对用户来说是全然透明的。下图显示的就是负载均衡集群的基本结构。


说完集群的基本原理和结构之后我们来搭建一个JBoss集群,主要分为下面几个步骤:

一、      准备所需组件:

a)    Apacheserver。我选用的是apache_2.2.3-win32-x86-no_ssl.msi

b)    mod_jk-apache-2.2.3.so文件。

该文件的作用是起分发作用

c)    JBossserver。我用的JBossserver是JBOSS 5.1.0GA

二、      安装安装server。

a)    安装Apacheserver(建议选非系统盘)。安装好后将下载好的mod_jk-apache-2.2.3.so文件拷贝到%APACH_HOME%/modules目录下。

b)    安装JBoss比較简单,直接将压缩包解压至对应的安装位置就可以。

三、      改动相关配置文件。

a)    在Apache安装路径下找到conf目录。在该目录中找到httpd.conf文件,在该文件的最后位置增加Include conf/mod_jk.conf。

b)    在conf目录下新建mod_jk.conf文件,内容例如以下:

    LoadModule jk_module modules/mod_jk-apache-2.2.3.so
    # Where to find workers.properties
    JkWorkersFile conf/workers.properties

    # where to find the log file
    JkLogFile logs/mod_jk.log
    # set the log level  set the log level
    JkLogLevel info    
    # map to the status server
    JkMount /private/admin/mystatus mystatus
    # router the request to the right host
    JkMount /* balance

    (c)相同是在conf目录中新建workers.properties文件,文件内容为:

    # define list of workers that will be used
    # for mapping requests
    worker.list=balance,mystatus

    # Define Node1
    worker.node1.port=11009
    worker.node1.host=192.168.24.246
    worker.node1.type=ajp13
    worker.node1.lbfactor=1
    worker.node1.socket_timeout=30
    worker.node1.socket_keepalive=1

    # Define Node2
    worker.node2.port=12009
    worker.node2.host=192.168.24.247
    worker.node2.type=ajp13
    worker.node2.lbfactor=1
    worker.node2.socket_timeout=30
    worker.node2.socket_keepalive=1

    # Define Node3
    worker.node3.port=13009
    worker.node3.host=192.168.24.245
    worker.node3.type=ajp13
    worker.node3.lbfactor=1
    worker.node3.socket_timeout=30
    worker.node3.socket_keepalive=1

    # Load-balancing behaviour
    worker.balance.type=lb
    worker.balance.balance_workers=node1,node2,node3
    worker.balance.sticky_session=1

    # Status worker for managing load balancer
    worker.mystatus.type=status

该文件用于定义server节点,在该文件里我定义了三个节点。node1,node2,node3,也就意味着在我的jboss集群中有三台jbossserver对外提供服       务。如上内容中host表示jbossserver所在的电脑的IP,port为jbossserverAJP所监听的端口号。lbfactor表示该server节点在该集群中的权重,该值越大,Apacheserver将请求分发至该台JBoss上的几率越大。

e)在部署Web应用时。须要在应用程序的web.xml中增加<distributable/>节点,例如以下所看到的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>Welcome to JBoss</display-name>
    <description>
        Welcome to JBoss
    </description>
    <distributable/>

</web-app>

至此Apacheserver和各Jboss节点server配置完毕,顺序启动Apache和各个Jboss节点。在浏览器中输入http://192.168.24.245:8011/aaa.war进行訪问,我们能够看到自定义的訪问页面(各Jboss节点中部署的aaa.war包中的index.jsp页面里的内容不一样来做区分),进行刷新能够看到Apache在不断的进行切换。



    


猜你喜欢

转载自www.cnblogs.com/ldxsuanfa/p/9982591.html
今日推荐