Apache + tomcat实现高并发负载均衡方案(四)----实现session共享(memcache)的集群

本文介绍了一种基于Apache AJP连接TOMCAT并通过MEMCACHED实现SESSION共享存储的高可用集群方案。此方案适用于中大型WEB系统,支持TOMCAT节点的快速扩容,并确保了在各个层面的高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.方案特点

  • Apache端使用AJP方式连接后端TOMCAT,启用sticky,实现会话级别的负载均衡。
  • APACHE端配置支持后端TOMCAT节点的故障转移。
  • 可选的APACHE通过keepalived实现2台apache的主备配置,实现apache服务器的高可用
  • TOMCAT端使用memcached session manager实现SESSION的共享存储和访问。
  • memcached session manager采用sticky方式配置,实现memcached的failover,确保memcached高可用。

2.建议场景

该方案主要可以用于中型或大型WEB系统。在架构的各层都考虑了高可用。是比较完善的廉价解决方案之一。可以支持多个TOMCAT节点,对TOMCAT节点的扩容的非常方便。可以使用在对可靠性要求比较高的WEB业务系统,如对外业务支撑,业务处理系统,中大型业务型网站等

 

3.基础环境安装设置

 

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

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

4.Memcached安装配置

本例中在两个节点中分别安装两个memcached。

n1:10.10.10.11:11211

 

n2:10.10.10.12:11211

详细安装配置请参考:

 

Memcached学习笔记 — 第二部分:Memcached服务器安装

 

4.TOMCAT配置

Tomcat采用memcached session manager配置session保存到memcached中,并配置memcached为主备模式,实现memcached的高可用。

 

根据:http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration

下载和配置tomcat+msm

 

选择配置kryo-serializer作为序列化方式。

下载需要的所有jar包放入tomcat的lib目录下($CATALINA_HOME/lib/

memcached-session-manager-1.6.0.jar

memcached-session-manager-tc6-1.6.0.jar

spymemcached-2.7.3.jar

kryo-serializer: msm-kryo-serializerkryo-serializerskryominlogreflectasmasm-3.2

 

各节点tomcat需要的lib包相同。

 

tomcat1节点配置

修改$CATALINA_HOME/conf/context.xml配置文件,加入manager节点

 

 

Tomcat配置文件context.xml代码

<Context>
  ...
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:10.10.10.11:11211,n2:10.10.10.12:11211"
    failoverNodes="n1"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>

设置memcached故障转移节点为:n1 

 

 

修改Engine节点配置,以支持AJP方式连接

<Engine name="Catalina" defaultHost="localhost">

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

 

 

tomcat2节点配置

 

修改$CATALINA_HOME/conf/context.xml配置文件,加入manager节点

 

 

Tomcat配置文件context.xml代码

<Context>
  ...
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:10.10.10.11:11211,n2:10.10.10.12:11211"
    failoverNodes="n2"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>

 设置memcached故障转移节点为:n2

 

 

 

修改Engine节点配置,以支持AJP方式连接

<Engine name="Catalina" defaultHost="localhost">

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

 

 

5.Apache配置

参考:APACHE(proxy) + TOMCAT(session复制)实现高可用网站或管理系统集群 的“Apache配置”小节

6.测试

参考:APACHE(proxy) + TOMCAT(session复制)实现高可用网站或管理系统集群 的“测试”小节



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值