`

Tomcat通过memcached实现session共享

 
阅读更多

相关软件及配置环境:

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完成。

 

 

  • 大小: 17.8 KB
  • 大小: 19.7 KB
分享到:
评论

相关推荐

    tomcat8+memcached session共享

    描述中提到的“nginx+tomcat8+memcached session共享所需jar包,直接放到tomcat/lib下即可”,暗示了实现这一功能需要一些特定的Java库(JAR包)。这些JAR包将集成到Tomcat的运行环境中,使Tomcat能够与Memcached...

    Tomcat通过Memcached实现session共享的完整部署记录

    本文记录了我在生产环境下使用memcached实现tomcat session会话共享解决方案的实施完整过程,验证可用!有需要的请拿走.

    Nginx+Tomcat+Memcached实现tomcat集群和session共享

    下面我们将详细探讨如何实现Nginx+Tomcat+Memcached的集群和Session共享。 **Nginx** Nginx是一款轻量级的Web服务器/反向代理服务器,以其高效的性能和低内存占用著称。在本场景中,Nginx主要负责以下任务: 1. **...

    tomcat8+memcached session共享所需的jar包

    tomcat8+memcached session共享所需的jar包, memcached-session-manager memcached-session-manager-tc8 msm-kryo-serializer spymemcached kryo-serializers所有jar包都有

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    nginx+tomcat+memcached实现session共享

    标题 "nginx+tomcat+memcached实现session共享" 涉及的是在分布式环境中如何通过组合使用这三种技术来管理用户的会话数据。这个话题对于构建高可用、高性能的Web应用系统至关重要,尤其是在大型网站和企业级应用中。...

    tomcat中Nginx+memcached实现session共享

    为了实现这一目标,我们可以结合Nginx反向代理服务器和memcached内存缓存系统来达到高效、可靠的Session共享。以下是对这个主题的详细阐述: 首先,让我们理解Session的概念。Session是Web应用程序用来跟踪用户状态...

    tomcat8 memcached session共享jar包

    标题中的“tomcat8 memcached session共享jar包”指的是在Tomcat 8中使用Memcached作为session共享存储的解决方案。Memcached是一种分布式内存缓存系统,常用于减轻数据库负载,提高应用性能。在Tomcat这样的Java...

    tomcat+memcached共享session所需jar包

    标题“tomcat+memcached共享session所需jar包”表明这是一个针对Tomcat服务器与Memcached结合使用以实现Session共享的解决方案。这个压缩包包含了适用于Tomcat7和Tomcat8的必要库文件,意味着无论你使用哪个版本的...

    nginx tomcat memcached 集群 session共享

    这里我们讨论的主题是如何通过Nginx、Tomcat和Memcached来实现集群环境下的session共享。Nginx作为反向代理服务器,负责负载均衡,Tomcat作为应用服务器运行Java Web应用程序,而Memcached则作为分布式内存缓存系统...

    memcached+tomcat7共享session所需要的jar包

    标题中的“memcached+tomcat7共享session所需要的jar包”是指使用Memcached作为分布式缓存系统,实现Tomcat7服务器间的Session共享。这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展...

    Nginx+Tomcat+Memcached集群Session共享实例

    Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果

    tomcat8memcachedsession共享jar

    标题中的“tomcat8memcachedsession共享jar”指的是在Tomcat 8中使用Memcached作为会话管理器的实现,以便在多台服务器之间共享会话数据。这通常是为了提高Web应用的可扩展性和性能,因为Memcached是一个分布式内存...

    session共享 memcached-session-manager 1.9.6 jar

    `memcached-session-manager`通过将用户的session数据存储在Memcached服务器上,而不是每个单独的Tomcat实例的内存中,实现了跨服务器的session共享。这意味着无论用户请求哪个服务器,他们的session数据都能被正确...

    Nginx+Tomcat+Memcached集群Session共享

    标题 "Nginx+Tomcat+Memcached集群Session共享" 描述了在分布式环境中如何通过Nginx反向代理服务器、Tomcat应用服务器集群以及Memcached缓存系统来实现Session的共享。这是一个常见的高可用性和负载均衡解决方案。...

    Nginx+Tomcat+Memcached-Session-Manager集群Session共享

    在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...

    Nginx+tomcat+memcached集群session共享(win7下)所用到

    本教程将深入探讨如何在Windows 7环境下,利用Nginx作为反向代理,Tomcat作为应用服务器,以及Memcached作为分布式缓存来实现session共享。下面将详细阐述每个组件的作用以及配置过程。 1. **Nginx**: Nginx是一...

    tomcat使用memcached集群session共享(转载并修改)

    然而,通过将 Session 存储在 Memcached 集群中,可以实现多台 Tomcat 服务器之间的 Session 共享,从而提高系统的伸缩性和可用性。 Memcached 是一个高性能、分布式的内存对象缓存系统,它允许应用程序存储和检索...

    Nginx+Tomcat7+Memcached集群Session共享

    Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...

Global site tag (gtag.js) - Google Analytics