tomcat 集群搭建

系统 1856 0

写在前面:

Disc:最近研究了一下tomcat集群搭建,这里只是作为个人整理,其中参见了很多优秀的网络资源会在后面列出,如果你想快速的完成配置可以参见本文,如果想了解更多内容可以参见下面的资源列表,那里会给你更多有用的内容。

Context:Apache2.2、Tomcat6.0(非安装版)、mod_jk.so(1.2.37)、windows

res-list: 

http://blog.csdn.net/lifetragedy/article/details/7712691

http://blog.csdn.net/freeworkman/article/details/8637012

Ps:关于搭建环境所用的apache、tomcat、mod_jk.so最好自己去官网下、好处自己想去吧


安装步骤:

1、安装apache2.2

2、安装Tomcat6.0

2.1修改Tomcat配置使Tomcat各个实例能同事正常工作

 

3、正式开始集群配置

3.1apache配置

3.2tomca配置

 

1.安装apache2.2

apache的安装很方便根据自己的系统到 http://httpd.apache.org/ 下载安装即可。安装完启动访问http://localhost能看到It works!就ok啦。

 

2.Tomcat6.0安装

Tomcat6.0选择非安装到 http://tomcat.apache.org/  选择自己合适的版本下载。

 

2.1修改Tomcat配置使Tomcat各个实例能同事正常工作

这里做集群环境首先要保证你的tomcat实例能够同事运行,此实验室在同一台机器上跑多个Tomcat实例所以很重要的一步是避免端口冲突。建议规则在必要的端口上保持实例递增(列:Tomcat_1监听端口为8080,Tomcat_2监听端口为8081,Tomcat_3端口为8082。。。),此测试使用2个Tomcat 实例。

 

Tomcat_1 配置保持默认,Tomcat_2修改service.xml内容如下:

Tomcat_1

      <Server port="8005" shutdown="SHUTDOWN">
    

 

Tomcat_2:

      <Server port="8006" shutdown="SHUTDOWN">
    

 

Tomcat_1:

      <Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000" 

redirectPort="8443" />
    

 

Tomcat_2:

      <Connector port="8081" protocol="HTTP/1.1" 

connectionTimeout="20000" 

redirectPort="8444" />
    

 

Tomcat_1:

      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    

 

Tomcat_2:

      <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
    

 

做完上述修改同时启动Tomcat_1和Tomcat_2保证两个实例能同时工作,分别访问http://localhost:8080和http://localhost:8081测试小猫飞起来了。完成这些只是最基本的工作,真正的还没开始,下面进入重点!

 

3、apache配置

3.1apache 配置

在apache的安装目录中找到conf/httpd.conf进行如下修改:

1)修改默认项目部署路径

 

      DocumentRoot "apche安装目录/htdocs" #注释掉加入下面内容,这个是我们要放项目的目录

DocumentRoot "c:/www"
    

 

2)mod_jk.so配置

 

      LoadModule jk_module modules/mod_jk.so

JKWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

<VirtualHost *>

DocumentRoot c:/www

<Directory "c:/www/hello">

    AllowOverride None

    Order allow,deny

          Allow from all

</Directory>

<Directory "c:/www/hello/WEB-INF">

         Order deny,allow

         Deny from all

</Directory>

ServerAdmin localhost

DocumentRoot c:/www/

ServerName localhost:80

DirectoryIndex index.html index.htm index.jsp index.action

ErrorLog logs/shsc-error_log.txt

CustomLog logs/shsc-access_log.txt common



JkMount /* controller

JkMount /*WEB-INF controller

JkMount /*j_spring_security_check controller

JkMount /*.action controller

JkMount /servlet/* controller

JkMount /*.jsp controller

JkMount /*.do controller

JkMount /*.action controller

 

JkMount /*fckeditor/editor/filemanager/connectors/*.* controller

JkMount /fckeditor/editor/filemanager/connectors/* controller

</VirtualHost>


    

3)workers.properties配置 (在apache安装目录下conf下建立新的workers.prooerties)

 

 

      worker.list = controller

#tomcat1

worker.tomcat1.port=8009       

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

#tomcat2

worker.tomcat2.port=8010    

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

#========controller========

worker.controller.type=lb

worker.controller.balance_workers=tomcat1,tomcat2       #注意对应关系

worker.lbcontroller.sticky_session=0

worker.controller.sticky_session_force=true

worker.connection_pool_size=3000

worker.connection_pool_minsize=50

worker.connection_pool_timeout=50000

 
    

 

3.2tomcat 配置

注意:确保你已经做了2.1中相关端口的修改

1)在tomcat安装目录的conf/service.xml中找到

 

      <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">   
    
tomcat_1:修改为

 

 

      <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">   
    
tomcat_2:修改为

 

 

      <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">   
    
注意:这里所修改的值是根据workers.properties中的配置进行对应的

2) 在1)中修改内容(即:<Engine ......>)的后面加入如下内容

 

 

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 

                  channelSendOptions="6"> 

              <Manager className="org.apache.catalina.ha.session.BackupManager" 

                    expireSessionsOnShutdown="false" 

                    notifyListenersOnReplication="true" 

                    mapSendOptions="6"/> 

           <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 

             <Membership className="org.apache.catalina.tribes.membership.McastService" 

                         bind="127.0.0.1" 

                         address="228.0.0.4" 

                         port="45564" 

                         frequency="500" 

                         dropTime="3000"/> 

             <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 

                       address="auto" 

                       
      
        port="4001" 
      
      

                       selectorTimeout="100" 

                       maxThreads="6"/> 

             <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 

               <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="60000"/>  

             </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;"/> 

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

         </Cluster>
    

注意:每个tomcat实例都要加入,并且注意Receiver port="4001" 此端口不能重复

 

基本内容到这里就结束了

4.测试配置

如果你已经完成上述配置应该就可以实现tomcat的集群了,分别启动Tomcat_1,Tomcat_2

Tomcat_1:

tomcat 集群搭建

Tomcat_2:

tomcat 集群搭建

2)启动apache,apache能正常启动就ok啦

3)这是一个很简单的测试项目 hello ,只是打印一下session,在tomcat每个实例中的webapps中部署 hello ,别忘了在apache中也部署( d:/www我们前面修改过的 )发挥你的想象进行各种测试吧。。。。。。

注意注意:在测试项目的web.xml中加入 <distributable/>

1:

tomcat 集群搭建

2:

tomcat 集群搭建

 






 

 


 

tomcat 集群搭建


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论