Tomcat集群配置

最近做一项目,是数据监控的。就是把数据库某些的内容不断的展示在页面上。当然数据来自别的系统。我们这个小的监控系统只负责定期的把数据展示在页面上。
       首先说下最近折腾的一些东西:为了这个蛋疼的小项目仔细的研究了quartz调度,apache tomcat集群,dwr reverseAjax反向推送,websphere集群的建立以及配置。在此记录下来,同时也供大家研究研究。
       首先讲起apache tomcat集群:
        1.准备工具: tomcat6.0(非安装版的)  apache Server 2.2版本   (版本很重要)
         2.安装apache server 
       图片
       下一步下一步很简单的。不过这一步我是这样填写的: 
      图片 
      Network Domain:localhost  Server Name :localhost   Administrator's Email:这个随便输入了  只要是正确的地址就行。
      一路next后。打开浏览器输入:http://localhost/ ;
     图片
         如果出现此页面则apache server安装正确。
         下面开始配置tomcat。复制三份, 由于我是在一台机器上部署的。所以呢每个tomcat的端口号都要不一样。如果你是分开部署就是说你有多个机器或者虚拟机就不用改端口号。图片  
修改tomcat配置文件:打开tomcat1/conf/server.xml:
第一个要修改的地方:图片修改server这个端口号
第二个要修改的方法:图片修改Connector的端口号和redirectPort的端口号。
第三那个要修改的地方:图片修改connector的端口号。这个是AJP的端口号。主要用于和apache server进行通信。
第四个修改的地方:图片修改tomcat的实例名。每个tomcat的实例名不能重复。
第五配置tomcat的session。添加如下配置文件:
 <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="5003" 
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> 
注意:address和第一个port必须保持一致。第二个port每个tomcat配置不一样。一次修改完后启动tomcat。看时候能正常启动:图片
当然前提是java环境配置要正确。
第六:修改apache server的配置:打开apache的安装文件下conf/httpd.conf:
 图片去掉109-115之间的注释。
去掉第470行的注释:图片
在最后加入:
ProxyRequests Off    
 <proxy balancer://cluster>             

BalancerMember ajp://127.0.0.1: 11009 loadfactor=1 route= tomcat1           
BalancerMember ajp://127.0.0.1: 12009 loadfactor=1 route= tomcat2  
BalancerMember ajp://127.0.0.1: 13009 loadfactor=1 route= tomcat3  

</proxy>  
注意红色标记部分和上面tomcat修改的AJP端口号以及tomcat别名必须一样。
关闭httpd.conf文件打开conf/extra/httpd-vhosts.conf文件在文件最后加入:

<VirtualHost *:80>       
ServerAdmin weijie@126.com      
ServerName localhost     
ServerAlias localhost       
ProxyPass / balancer:// cluster/ stickysession=jsessionid nofailover=On       
ProxyPassReverse / balancer:// cluster/       
ErrorLog "logs/lbtest-error.log"      
CustomLog "logs/lbtest-access.log" common  
</VirtualHost> 
注意上述绿色部分必须一致。
至此完成所有的了配置。想每一个tomcat部署项目注意项目中web.xml要加入 <distributable/>来保证session复制一致性。
下面截图中项目来自于网络自己搜了一个稍微改了下。就是一个打印session ID和session中保存数值的网页。
关闭所有tomcat重启apache服务。
 图片
网页如下:如此可见来自于tomcat3的相应 。图片 

 手动关闭tomcat3。图片
刷新网页:图片
可见session保持一致。同时提交表单正确运行。

当然本次做集群是为后面quartz作业调度做准备以及dwr反向推送。
至此tomcat集群结束。当然tomcat中可以优化很多东西。详情参考: http://blog.csdn.net/lifetragedy/article/details/7698555通往架构师之路一系列文章。

转载于:https://www.cnblogs.com/sfmjp/articles/2933675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值