apache+多个tomcat+memcached共享session会话(windows篇)
2012-08-26 15:47
447 查看
参考:
http://lgdvsehome.blog.51cto.com/3360656/878164
1、环境
apache+2个tomcat+memcached服务器
2、具体配置
a)修改apache http server配置文件http.conf,首先load三个model,代码如下:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
然后在此配置文件末端加入以下代码(该处配置与前文有些差异):
ProxyPass / balancer://tomcatcluster/
ProxyPassReverse / balancer://tomcatcluster/
<Proxy balancer://tomcatcluster>
BalancerMember ajp://localhost:8009 route=a
BalancerMember ajp://localhost:9009 route=b
</Proxy>
b)接下来修改Tomcat的server.xml文件,如下:
<!--Define
an AJP 1.3 Connector on port 8009 -->
<Connectorport="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
其中的port为前面<Proxy>中设定的端口,还要配置其route,代码如下:
<!--Define the top level container in our container
hierarchy-->
<Enginename="Catalina"defaultHost="localhost"jvmRoute="a">
jvmRoute也须同前面的设置一样。
c)再修改Tomcat的context.xml
需要用到的jar包:
memcached-2.6.jar(https://code.google.com/p/spymemcached/downloads/detail?name=spymemcached-2.8.4.jar)
javolution-5.4.3.1.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc7-1.5.1.jar
msm-javolution-serializer-1.5.1.jar
msm-kryo-serializer-1.5.1.jar
msm-xstream-serializer-1.5.1.jar
以上jar包在http://code.google.com/p/memcached-session-manager/downloads/list中都可以找到。
d)安装memcached服务器,参见
/article/2309042.html
3、编写测试代码
index.jsp
4、测试。
第一次访问,返回显示session中属性为空,进行属性设置,同时n1表示session在memcached服务器上的节点,b为tomcat服务器节点。
紧接着关闭b服务器,就是默认的第二个自定义服务器myTomcat6.
继续访问如下图,sessionID前段没有发生变化,只是变成了来自tomat服务器a,但是从session属性中读出了初始设置test
再访问http://localhost/balance,如下图,已经开始累计了。
再开启b服务器,再访问http://localhost/balance,
好了,以上的测试结果表明,session已经实现了集群共享,当其中一个服务器宕机了以后,可以实现故障转移。
http://lgdvsehome.blog.51cto.com/3360656/878164
Nginx+Tomcat+Memcached集群Session共享(windows)
基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置
1、环境apache+2个tomcat+memcached服务器
2、具体配置
a)修改apache http server配置文件http.conf,首先load三个model,代码如下:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
然后在此配置文件末端加入以下代码(该处配置与前文有些差异):
ProxyPass / balancer://tomcatcluster/
ProxyPassReverse / balancer://tomcatcluster/
<Proxy balancer://tomcatcluster>
BalancerMember ajp://localhost:8009 route=a
BalancerMember ajp://localhost:9009 route=b
</Proxy>
b)接下来修改Tomcat的server.xml文件,如下:
<!--Define
an AJP 1.3 Connector on port 8009 -->
<Connectorport="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
其中的port为前面<Proxy>中设定的端口,还要配置其route,代码如下:
<!--Define the top level container in our container
hierarchy-->
<Enginename="Catalina"defaultHost="localhost"jvmRoute="a">
jvmRoute也须同前面的设置一样。
c)再修改Tomcat的context.xml
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false"/>
需要用到的jar包:
memcached-2.6.jar(https://code.google.com/p/spymemcached/downloads/detail?name=spymemcached-2.8.4.jar)
javolution-5.4.3.1.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc7-1.5.1.jar
msm-javolution-serializer-1.5.1.jar
msm-kryo-serializer-1.5.1.jar
msm-xstream-serializer-1.5.1.jar
以上jar包在http://code.google.com/p/memcached-session-manager/downloads/list中都可以找到。
d)安装memcached服务器,参见
/article/2309042.html
3、编写测试代码
index.jsp
<%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.util.*" %> <html><head><title>Cluster Test</title></head> <body> <% //HttpSession session = request.getSession(true); System.out.println(session.getId()); out.println("<br> SESSION ID:" + session.getId()+"<br>"); if(session.getAttribute("jhy") != null){ out.println("<br> SESSION attribute:" + session.getAttribute("jhy")+"<br>"); String str = "+"; session.setAttribute("jhy",session.getAttribute("jhy")+str); }else{ session.setAttribute("jhy","test"); out.println("<br> SESSION attribute set!" +"<br>"); } %> </body> </html>
4、测试。
第一次访问,返回显示session中属性为空,进行属性设置,同时n1表示session在memcached服务器上的节点,b为tomcat服务器节点。
紧接着关闭b服务器,就是默认的第二个自定义服务器myTomcat6.
继续访问如下图,sessionID前段没有发生变化,只是变成了来自tomat服务器a,但是从session属性中读出了初始设置test
再访问http://localhost/balance,如下图,已经开始累计了。
再开启b服务器,再访问http://localhost/balance,
好了,以上的测试结果表明,session已经实现了集群共享,当其中一个服务器宕机了以后,可以实现故障转移。
相关文章推荐
- apache+多个tomcat+memcached共享session会话(ubuntu12.04篇)
- apache+多个tomcat+memcached共享session会话(ubuntu12.04篇)
- Apache+Tomcat负载均衡两种session共享方式的设置之二复制会话
- Apache+Tomcat负载均衡两种session共享方式的设置之二复制会话
- apache+tomcat+memcached实现负载均衡,session共享(摘抄+整合)
- Nginx+Memcached+Tomcat session会话共享实战
- 服务器安装Apache+Tomcat+Memcached共享Session的构架设计
- memcached-session-manager配置(tomcat 全局会话共享)
- Apache+Tomcat+Memcached共享Session的构架设计
- Apache+Tomcat+Memcached共享Session的构架设计
- Apache+Tomcat+Memcached共享Session的构架设计
- 服务器安装Apache+Tomcat+Memcached共享Session的构架设计
- apache + tomcat + mod_jk解决session会话共享的问题
- Nginx+LAT(apache+tomcat)的实现和使用memcached保存tomcat的session会话 推荐
- tomcat集群memcached 共享session
- nginx+tomcat+memcached构建session共享集群 推荐
- NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
- Spring-3.2.5 + Quartz-2.2.1 集群实例(Tomcat+Memcached+Quartz集群session共享)
- Tomcat基于MSM+Memcached实现Session共享
- Apache+Tomcat负载均衡两种session共享方式的设置