Apache+Tomcat负载均衡两种session共享方式的设置
来源:互联网 发布:支付宝淘宝秒下款口子 编辑:程序博客网 时间:2024/06/16 09:39
session共享有两种方式:
1、session共享,多个服务器session拷贝保存,一台宕机不会影响用户的登录状态;
2、请求精确集中定位,即当前用户的请求都集中定位到一台服务器中,这样单台服务器保存了用户的session登录信息,如果宕机,则等同于单点部署,会丢失;
apache中针对上述两个方法提供了不同的配置项:
-------------------------------
选取Apache HTTP Server作为前端的负载服务器,后端选取两个Tomcat作集群。
一、采用粘性Session
这种方式将同一用户的请求转发到特定的Tomcat服务器上,避免了集群中Session的复制,缺点是用户只跟一种的一台服务器通信,如果此服务器down掉,那就废了。
采用的model为mod_proxy_ajp.so,整个配置在tomcat的配置文件中都有相关的注释,只需作相应修改就OK。
我们选取的是Apache HTTP Server2.2.4,Tomcat5.5.16。
首先安装Apache HTTP Server,然后修改其配置文件http.conf,首先load三个model,代码如下:
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
以上代码配置了Proxy的相关参数,<Proxy>模块定义了均衡负载的配置,其中两个TomcatServer都配置在同一台服务器上,端口分别为8009、9009,并配置各自的route,这样ApacheServer就能根据route将请求转发给特定的Tomcat。
接下来修改Tomcat的server.xml文件,如下:
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
下面用JMeter对配置后的负载均衡做一测试,首先先启动两个Tomcat Server,随后启动ApacheServer,在JMeter中新建测试计划,在两个TomcatServer中的jsp-examples下新建test.jsp(此jsp自己随便写两句就成),然后进行测试,以下是部分取样器结果:
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
以上红色代码表示用户的http请求中的JSESSIONID中已经附带了route后缀,.b表示此请求将转发到route为b的TomcatServer上,你将会发现其中的一部分请求的JSESSIONID后缀为.a,也就是转发给route为a的TomcatServer上。
二、采用Session复制
修改apache http server配置文件http.conf,首先load三个model,代码如下:
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
然后在此配置文件末端加入以下代码:
ProxyPass/ balancer://tomcatcluster/
ProxyPassReverse/balancer://tomcatcluster/
<Proxybalancer://tomcatcluster>
BalancerMemberajp://localhost:8009route=a
BalancerMemberajp://localhost:9009 route=b
</Proxy>
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
![Apache+Tomcat负载均衡两种session共享方式的设置](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
jvmRoute也须同前面的设置一样。
另外,还需要在tomcat中将以下配置打开:
最后,要在我们的应用程序里的web-inf下的web.xml文件<web-app>元素的最后加上:<distributable/> 。
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置之一粘性会话
- Apache+Tomcat负载均衡两种session共享方式的设置之二复制会话
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- Apache+Tomcat负载均衡两种session共享方式的设置
- tomcat负载均衡两种session共享方式
- Apache+Tomcat集群负载均衡的两种session处理方式
- 使用apache+tomcat 负载均衡 session共享
- Apache+Tomcat 负载均衡 Session共享
- Apache+Tomcat 负载均衡+session共享
- apache+tomcat集群 负载均衡 session共享
- Tips for QRcode ( SAP中二维码相关)
- Android本地数据库增删改查 菜单实现
- TestNG - @Parameters 传递外部参数 对比 @Dataprovider
- 网上销售平台--jersey实现应用服务器和图片服务器分离(六)
- NSCache的简单使用
- Apache+Tomcat负载均衡两种session共享方式的设置
- 异步载入资源
- pid及socket文件丢失,数据库无法启动问题
- xcode7.1生成打包上传时需要注意的东西
- 跨线程调用问题
- Android JNI的的时候,会遇到findlibrary returned null的错误
- oracle 备份与还原 exp/imp
- 十二星座挑选工作终极指南
- vijos1144.小胖守皇宫(树形DP)