Tomcat集群和Session共享的配置方法

Tomcat集群配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,对我这样的人来说很难懂。



下面根据说下怎么配置吧:
第一步、准备工作:

准备几份Tomcat程序,比如分别叫tomcat1、tomcat2、...

如果各Tomcat程序放在不同的机器上,那么就不会有端口的冲突;

如果是放在同一台机器上的话,那就简单改几个端口,防止端口占用造成的冲突。打开conf文件夹中的server.xml文件,需要修改的端口有:
<Server port="8005" shutdown="SHUTDOWN">:这里的port要改改
<Connector port="8080" protocol="HTTP/1.1"/>:这里的port也要改改
<Connector port="8009" protocol="AJP/1.3"/>:这里的port也要改改

至于修改成什么样子,看你自己了,只要不出现端口冲突就可以了,要保证各个Tomcat实例间没有端口冲突
第二步、配置Tomcat的集群设置:

还是修改server.xml文件,最简单的集群配置只需要将<Engine/>节点中注释掉的下面这句取消注释即可:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


使用这样方法配置的集群会将Session同步到所在网段上的所有配置了集群属性的实例上(此处讲所在网段可能不准确,因为用的228.0.0.4地址进行的广播,我不清楚这是个什么性质的广播地址)。也就是说如果该广播地址下的所有Tomcat实例都会共享Session,那么假如有几个互不相关的集群,就可能造成Session复制浪费,所以为了避免浪费就需要对<Cluster>节点多做点设置了,如下:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">   
<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"/>
</Channel>
</Cluster>


加了一个<Channel>,里面包了个<Membership>,咱们要关注的就是membership的port属性,不同的集群设置不同的port值,从目前的使用来看,基本上是隔离开了。
第三步、修改项目的web.xml文件:

web.xml文件的修改很简单:只需要在<web-app/>节点中添加<distributable/>这个节点就可以了。



OK,有了这三步就实现了Tomcat的集群和Session的共享了。

以上测试环境为 WinXP + Tomcat6.0.30
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值