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
详细安装配置请参考:
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-serializer, kryo-serializers, kryo, minlog, reflectasm, asm-3.2
各节点tomcat需要的lib包相同。
tomcat1节点配置
修改$CATALINA_HOME/conf/context.xml配置文件,加入manager节点
<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节点
<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复制)实现高可用网站或管理系统集群 的“测试”小节
分享到:
相关推荐
标题中的“APACHE(proxy_ajp_stickysession) + TOMCAT实现高可用网站或管理系统集群”是指通过Apache HTTP服务器的Proxy_AJP模块配合Tomcat的stickysession特性,来构建一个高可用的Web服务集群。这样的集群可以提高...
Apache可以通过mod_proxy、mod_jk、mod_proxy_ajp等模块与Tomcat进行通信。 3. **mod_proxy 模块**: Apache的mod_proxy模块提供了反向代理和负载平衡功能。配置mod_proxy可以在Apache配置文件中定义多个后端...
它可以通过模块(如mod_proxy、mod_jk或mod_proxy_ajp)与后端的Tomcat实例进行通信。这样可以利用Apache的静态资源处理能力,减轻Tomcat的压力,同时实现动态内容的高效处理。 **3. 集群配置步骤** - **安装和配置...
- `BalancerMember ajp://127.0.0.1:9091/BookingProxy_hain`:定义了一个后端成员,即Tomcat服务器,其通过AJP协议监听在本地IP的9091端口。 - `route=Tomcat_bphain`:为该后端服务器分配了一个路由名称,便于管理...
- 修改Apache配置文件`%apache%\conf\httpd.conf`,取消负载均衡模块的注释,加载mod_proxy、mod_proxy_ajp等模块。 - 在文件末尾添加VirtualHost配置,定义负载均衡策略。例如,使用`ProxyRequests off`关闭代理...
Apache HTTP Server(简称Apache)结合其模块,如mod_proxy、mod_proxy_ajp等,可以实现这样的功能,尤其在与Tomcat等Java应用服务器配合时。 在Apache中实现负载均衡,首先需要确保Apache服务器的版本支持负载均衡...