`

使用Apache搭建Sticky模式的Tomcat集群

阅读更多

集群原理
Web集群分成两个方面:
负载分发
一方面是水平扩展,通过接入代理进行负载分发,分发到后台多个实际的业务处理逻辑单元上。这种接入代理可以是nginx,Apache等软件负载,也可以是类似F5等硬件负载。具体方式参见nginx负载或Apache负载等。
Session处理
另一方面就是多个业务逻辑单元之间的Session处理,处理方式有两种,一种是Session sticky模式,另外一种是Session共享模式。

Session处理方式

Session Sticky

Session共享

处理逻辑

把同一个用户的Session一直发送到同一个逻辑单元处理

所有的后端处理逻辑单元共享Session或者Session更新时通知其它逻辑单元

主要实现方式

指定负载的分发组件(如Apache),把请求中包含特定属性的请求发到同一个连接,如指定jsessionid一致的请求到同一个请求,或者在负载组件中给每个响应增加一个头部属性,指定下次的分发目的地

1.       各自维护Session,当请求处理结束后,通知其它组件单元更新Session,包括异步和同步模式

2.       统一维护Session,如把Session放在memcached或者共享文件系统中,可以在容器级别或者应用级别做这个事情

3.       利用cache server

优势

本地维护Session,不需要访问网络存取或者通知其它处理单元变更

完全的随机分发,可以根据服务忙闲调整分发策略,高可用性

劣势

一台服务器宕机后,当前Session断掉

网络存取操作等耗时,影响处理效率(根据选用的策略不同造成影响不同)

 
搭建步骤
本文档所阐述场景:使用Apache modproxy模式进行负载分发,Session使用Session Sticky模式。
安装部署Tomcat
略。
注意:多台Tomcat之间毫无关联,不需要做任何配置。
安装Apache HttpServer
略。
注意:Apache需要使用2.2以上的版本,支持mod proxy模式。
配置负载分发
以下配置修改都是在Apache的conf/httpd.conf配置文件中完成
1.    修改加载mod proxy需要的模块
找到配置中被注释掉的几行,删除注释,使Apache在启动的时候加载如下模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule headers_module modules/mod_headers.so
LoadModule status_module modules/mod_status.so
2.    给HTTP请求头部添加路由标识
直接在loadModule模块下面增加即可
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
3.    配置负载均衡后端的业务逻辑单元处理地址
注意本步骤标红的需要与上面步骤中的ROUTEID一致。
<Proxy balancer://mycluster>
BalancerMember http://192.168.77.213:9005 route=1
BalancerMember http://192.168.77.213:9004 route=2
BalancerMember http://192.168.77.213:9002 route=3
BalancerMember http://192.168.77.213:9003 route=4
ProxySet stickysession=ROUTEID
</Proxy>
4.    配置mod proxy路由规则
ProxyPass / balancer://mycluster/
注意“/”不要少加,mycluster与上面的后端处理集群的名字一致。这里的意思是把所有的请求都转发给上面的集群进行处理
5.    2,3,4步骤的最终配置如下:
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://mycluster>
BalancerMember http://192.168.77.213:9005 route=1
BalancerMember http://192.168.77.213:9004 route=2
BalancerMember http://192.168.77.213:9002 route=3
BalancerMember http://192.168.77.213:9003 route=4
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass / balancer://mycluster/


验证
打开地址http://192.168.13.242:7080/smsshall/welcome.do进行验证(注意Apache是监听192.168.13.242:7080地址的)。
使用firebug查看cookies信息,多次刷新,cookies中的ROUTEID是一致的。
重新打开多个浏览器,刷新,尝试,看ROUTEID,同一个浏览器的ROUTEID是不会变化的。

分享到:
评论

相关推荐

    apache+tomcat集群配置

    Apache + Tomcat 集群配置 Apache + Tomcat 集群配置是指将 Apache 服务器与 Tomcat 服务器集成,以提高服务器的性能和可扩展性。本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器...

    Apache+Tomcat服务器集群配置详细步骤

    本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...

    Apache+Tomcat5.0实现集群

    通过集成Apache和Tomcat,可以构建一个高效且可扩展的Web服务器集群,实现负载均衡和session复制功能。 集群技术的主要目标是提高系统的可用性和性能,通过将工作负载分散到多个服务器上,避免单点故障,并提高处理...

    轻松实现Apache,Tomcat集群和负载均衡

    ### 轻松实现Apache与Tomcat集群及负载均衡 #### 环境说明 - **Apache**: 使用版本为 `apache_2.0.55`。 - **Tomcat**: 使用版本为 `apache-tomcat-5.5.17`(Zip版本),配置两份实例,分别命名为 `tomcat1` 和 `...

    Apache+Tomcat集群和负载均衡及Session绑定

    【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。

    apache与tomcat负载集群的实现

    在构建高性能、高可用性的Web服务时,Apache与Tomcat的组合使用是非常常见的策略,尤其在需要实现负载平衡和集群的场景下。Apache通常作为前端服务器处理静态内容,而Tomcat则作为后端应用服务器处理动态请求。接...

    Apache与Tomcat集群负载均衡(一键打包解压即可运行)

    Tomcat和Apache集群和负载均衡配置 Tomcat版本:apache-tomcat-7.0.26 Apache版本:Apache2.2.25 jre版本:1.6.0_26 集群和负载均衡配置已整好,解压后,只要点击run.bat一键启动,即可看到集群效果。 运行成功后,...

    结合Apache和Tomcat实现集群和负载均衡

    ### 结合Apache和Tomcat实现集群与负载均衡 #### 一、引言 在现代Web应用开发中,为了提高服务的稳定性和响应速度,通常会采用集群和负载均衡技术。本文将详细介绍如何通过Apache和Tomcat这两款强大的开源工具来...

    疯狂的IT人整理Apache、Tomcat集群和负载均衡

    ### Apache、Tomcat集群与负载均衡详解 #### 一、引言 随着互联网技术的不断发展,用户对服务的要求越来越高,单台服务器往往无法满足高并发、高性能的需求。因此,搭建集群成为了提高系统可用性、扩展性的有效...

    Apache+Tomcat集群

    在Apache+Tomcat集群的配置中,`mod_jk`模块扮演着关键角色。它是Apache的Jakarta连接器,负责在Apache和Tomcat之间建立通信,实现负载均衡和故障转移。这个模块通过一个名为`worker.properties`的配置文件定义了与...

    Apache+Tomcat集群、优化配置

    为了顺利搭建Apache+Tomcat集群,首先需要下载以下软件包: - Apache Web Server; - mod_jk 模块(用于实现Apache与Tomcat之间的通信); - JDK(Java Development Kit); - Tomcat Server。 注意,mod_jk 的版本...

    Apache2.2+Tomcat集群配置

    本文档将详细介绍如何在Apache2.2环境中配置Tomcat5.5或5.0集群,通过使用mod_jk模块来实现负载均衡和服务高可用性。 #### 配置准备 1. **下载mod_jk模块**: - 下载 `mod_jk-1.2.3` 和 `httpd-2.2.3.so` 文件。 ...

    tomcat集群

    以下是对Apache+Tomcat集群配置的详细讲解。 一、Apache与Tomcat的集成 Apache HTTP服务器以其稳定性和强大的模块化特性被广泛使用,而Tomcat则是Java Servlet和JavaServer Pages(JSP)的开源应用服务器。通过...

    Apache+tomcat集群和负载均衡.doc

    Apache+Tomcat集群和负载均衡是通过Apache作为前端代理,利用mod_jk模块将HTTP请求转发给后端的Tomcat服务器,实现负载均衡和高可用性。配置过程中需要考虑会话管理、服务器间的通信方式(如AJP)以及适当的负载均衡...

Global site tag (gtag.js) - Google Analytics