日期:2014-05-17  浏览次数:20830 次

APACHE(proxy) + TOMCAT(session复制)实现高可用网站或管理系统集群

?

1.方案特点

  • Apache端可选使用sticky session配置负载均衡,是否配置sticky只是影响负载均衡的粒度。
  • Apache端配置故障转移.
  • Tomcat端使用官方文档描述的cluster配置,通过多播实现内存方式的session复制,可选使用同步复制和异步复制。
2.建议场景

对于对SESSION强依赖的系统,并且对系统处理能力要求不是太高,只考虑2TOMCAT作为后端服务的主备方式的情况,这是一种简答的配置。不适合太多的TOMCAT节点,节点越多,复制SESSION的代价会几何方式增加。如:适合小型网站,管理系统,小型业务系统。

?

3.基础环境安装设置

?

操作系统环境,APACHE安装,TOMCAT集群安装,TOMCAT测试工程请参见:

http://zp820705.iteye.com/blog/1347417

?

4.TOMCAT配置

Tomcat集群配置后端Tomcat Server为支持AJP的独立服务,以适应前端Apache配置为粘性会话(sticky-session),Tomcat节点配置Cluster,支持以多播方式进行内存级Session复制。

Tomcat1配置

配置Cluster,使用多播方式同步复制实现节点间session复制。详细配置参数请参见:

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

?

修改server.xml,在Engine节点内,host节点后,加入Cluster配置,如下:

?

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

          <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="5