注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

骇客归来

ぁ枫あ

 
 
 

日志

 
 

Tomcat负载均衡和集群  

2009-03-16 16:01:34|  分类: 负载均衡 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. 首先安装Apache2.2.11                                                                                   

2. 解压Tomcat6.0.18到指定目录,并且复制一份,分别命名为
   Tomcat1, Tomcat2
   编辑Tocacat2的server.xml中的AJP Connector端口为9009
2.1 下载mod_jk插件
    http://tomcat.apache.org/connectors-doc/
2.2 下载APR本地运行库,并加入到CLASS_PAH中
    http://apr.apache.org/

3. 创建mod_jk.conf文件,加入以下内容:

#加载mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.27-httpd-2.2.10.so #这里是2.1下载的插件
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp controller
JkMount /manager/* controller

4. 编辑apache下httpd.conf文件,加入以下行
include "%BASE_PATH%mod_jk.conf"
这里的%BASE_PATH%是指mod_jk.conf的存放路径。

5. 修改tomcat的server.xml文件,将AJP Connector的端口分别修改为8009,9009
   并且将Engine的jvmRoute参数分别设定为tomcat1, tomcat2
    
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Engine name="Catalina" defaultHost="www.haiker.com" jvmRoute="tomcat2">

6. 在apache的conf下创建worker.properties文件,内容如下:
    worker.list=controller,tomcat1,tomcat2

    #========tomcat1=============
    worker.tomcat1.port=8009
    worker.tomcat1.host=localhost
    worker.tomcat1.type=ajp13
    worker.tomcat1.lbfactor=1

    #========tomcat2=============
    worker.tomcat1.port=9009
    worker.tomcat1.host=www.haiker.com
    worker.tomcat1.type=ajp13
    worker.tomcat1.lbfactor=1

    #=====Controller=========
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat1,tomcat2
    worker.controller.sticky_session=1

至此,负载均衡已经配置完成,此时我们还需要配置集群来完成session的共享。配置方式如下

1. 将一下的内容copy到tomcat的server.xml中
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="6">

          <Manager className="org.apache.catalina.ha.session.BackupManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"
                   mapSendOptions="6"/>
          <!--
          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>
          -->        
          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"
                      port="5000"
                      selectorTimeout="100"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>

2. 在web.xml中加入以下节点
<distributable/>

关于集群的比较:

mod_jk方式的优点是,Apache 会自动检测到停止掉的tomcat,然后不再发请求过去。
缺点就是,当停止掉的tomcat服务器再次启动的时候,Apache检测不到,仍然不会转发请求过去。

R-proxy和mod_jk的
共同优点是:可以只将Apache置于公网,节省公网IP地址资源。
共同缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。
  评论这张
 
阅读(212)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018