相关软件及配置环境:
1、memcached-win64-1.4.4-14 tomcat-6.0.44
2、运行环境:win7 64
3、需要的jar:
javolution-5.5.1.jar
memcached-session-manager-1.9.0-RC1.jar
memcached-session-manager-tc8-1.9.0-RC1.jar
msm-javolution-serializer-1.9.0-RC1.jar
spymemcached-2.8.12.jar
安装步骤(memcached):
1、解压到指定目录下:如 F:\memcached
2、切换到命令行:切换到 F:\memcached
3、安装
memcached.exe -d install
4、启动
memcached.exe -d start
5、查看服务是否正常启动:运行输入 services.msc,查看memcached是否已启动。
Tomacat配置:
1、把上述准备的jar包拷贝到(\tomcat-8.0.24\lib)目录下
2、修改(tomcat-8.0.24\conf\context.xml),增加如下配置:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
lockingMode="auto"
memcachedNodes="n1:127.0.0.1:11211"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
sticky="false"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>
3、拷贝一份Tomcat, 修改其中一个tomcat的配置(omcat-8.0.24\conf\server.xml)
<Server port="9005" shutdown="SHUTDOWN"> 原为8005;
<Connector connectionTimeout="20000" port="9080" protocol="HTTP/1.1" redirectPort="8443"/>原为8080;
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443"/>原为8009;
4、测试Tomcat是否能正常启动。
5、编写测试程序(通过memcached缓存自定义对象信息)
1)自定义类User,必须实现Serializable接口。
import java.io.Serializable; public class User implements Serializable{ /** * */ private static final long serialVersionUID = 8185062937031496066L; /** * */ private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2)自定义的servlet类:
package cn.sjf.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import cn.sjf.pojo.User; /** * Servlet implementation class LoginServlet */ public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(true); PrintWriter out = response.getWriter(); if (session == null) { System.out.println("null"); } else { if (null == session.getAttribute("userinfo")) { User user = new User(); user.setUsername("test2222"); user.setPassword("helloworld"); session.setAttribute("userinfo", user); out.println("当前用户在session中不存在,需要新创建,并保存到session中。<br>"); out.println("username:" + user.getUsername() + ",password:" + user.getPassword() + "<br>"); out.println("当前访问的url:" + request.getRequestURL()); } else { User user = (User) session.getAttribute("userinfo"); out.println("当前用户在session中存在。<br>"); out.println("username:" + user.getUsername() + ",password:" + user.getPassword() + "<br>"); out.println("当前访问的url:" + request.getRequestURL() + "<br>"); } } out.close(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
3)如果出现乱码,自己可以配置个编码过滤器(略)
4)把应用分别部署到两个Tomcat下。
5)在同一个浏览器中,打开两个tab页,分别访问:
http://localhost:8080/memcached1/LoginServlet
http://localhost:9080/memcached1/LoginServlet
至此,tomcat集成memcached完成。
相关推荐
本文记录了我在生产环境下使用memcached实现tomcat session会话共享解决方案的实施完整过程,验证可用!有需要的请拿走.
nginx+tomcat8+memcached session共享所需jar包 直接放到tomcat/lib下即可
asm-3.2.jar,kryo-1.04.jar,kryo-serializers-...memcached-session-manager-1.7.0.jar,memcached-session-manager-tc7-1.7.0.jar,msm-kryo-serializer-1.7.0.jar,reflectasm-1.01.jar,spymemcached-2.7.3.jar
tomcat8+memcached session共享所需的jar包, memcached-session-manager memcached-session-manager-tc8 msm-kryo-serializer spymemcached kryo-serializers所有jar包都有
通过nginx和tomcat和memcached实现session在web服务器之间的共享
tomcat中Nginx+memcached实现session共享 所需要的jar包
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
NULL 博文链接:https://mukeliang.iteye.com/blog/2197850
Nginx+tomcat+memcached集群session共享(win7下)所用到一些zip文件和必须的jar包
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
Nginx+Tomcat+Memcached共享session集群配置
Nginx+Tomcat+Memcached-Session-Manager整合做集群实现Session共享,实战操作,亲测可用。本文档仅供交流学习使用,欢迎大家批评指正。
tomcat8 memcached session共享jar包 ,Tomcat7 使用 memcached-session-manager-tc7-1.9.5.jar其余jar包 一样,已经测试过
Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...
兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。
包含了memcached实现tomcat7的session共享所需要的所有jar包 经本人在linux+nginx 环境测试通过
memcached-session-manager-1.6.3.jar memcached-session-manager-tc6-1.6.3.jar minlog-1.2.jar msm-javolution-serializer-1.6.3.jar msm-kryo-serializer-1.6.3.jar msm-xstream-serializer-1.6.3.jar reflectasm...
Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分
今天学习tomcat,nginx,和memcached搭建集群,实现session共享的时候,发现网上的jar包都不全,要么就是不兼容,费了好大劲才找到能用的。
memcached+tomcat7 session共享用到的jar包:javolution-5.5.1.jar,kryo-1.03.jar,kryo-serializers-0.10.jar,memcached-2.5.jar,memcached-session-manager-1.5.1.jar,memcached-session-manager-tc7-1.5.1.jar,...