`
hai0378
  • 浏览: 533854 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Session Cache Server 及Tomcat集群架构之二:用Memcached 实现简单Session Cache Server

 
阅读更多

Memcached 实现简单Session Cache Server

 

前面写了“Session Cache Server Tomcat集群架构概念”,这次简单实现了单个Session Cache Server,发布出来供大家参考学习,希望能抛砖引玉。

这个实现参考了javaeye  网友codeutil的文章和代码:http://www.javaeye.com/topic/81641

我的实现是重写了StandardManagerStandardSession

StandardManager实现session的查找和更新。

StandardSession中实现将所有的session数据全部储存在memcached上,tomcat不储存session数据,基本储存结构如下:

数据类型

Key

Value

Session

SESSION_IDS

Set,储存所有的Session ID

Session ID

Session id

Set,储存所有该session相关的数据项Key

Session Data

Data key+@+session id

Key 对应的自定义数据,必须实现Serializable接口

 

注意:本代码只是用来测试学习,并非完整可靠的实现,切勿用于正式生产系统。

附件测试的使用

下载附件,解压后,如下图:

 

其所有配置都已经配置好,运行批处理即可测试。

Start.bat 为所有的启动批处理

Stop.bat 为所有的关闭批处理

Scs.jar包括了实现的源代码和配置文件。

启动后用http://localhost:81/scs/jsp3.jsp访问

注意:为防止端口冲突,Nginx服务端口修改成了81Tomcat 12的端口分别是:8480/85808405/85058409/8509

Tomcat的配置是在conf/context.xml中添加Manager节点,配置自己实现的Manager类:

 

 

下面是运行中的一些截图,供参考:

 

刷新后:

分享到:
评论

相关推荐

    用Memcached 实现简单Session Cache Server

    本文将深入探讨如何使用Memcached来实现一个简单的Session Cache Server,以此解决在Tomcat集群中的Session共享问题。 首先,我们来了解Session Cache Server的作用。Session Cache Server是一种集中式的缓存服务,...

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

    【Nginx+Tomcat+Memcached实现Tomcat集群和session共享】 在现代Web应用程序的部署中,为了提高系统的可用性和可扩展性,通常会采用集群技术。将多个Tomcat服务器组成一个集群,通过负载均衡策略分发用户请求,以...

    集群Nginx+Tomcat+Memcached

    **Session共享**是实现Web应用集群的关键技术之一。为了保证用户会话数据的一致性和可用性,在多台Tomcat服务器之间共享Session是非常必要的。利用Memcached作为集中式的缓存存储,可以有效地解决这一问题。 - **...

    第3周 3WEB技术-tomcat 会话同步.html

    (3) session server:redis(store), memcached(cache) 共享存储 分析:新建立一个存放各个tomcat session记录的server,每台tomcat服务器都将自己的session记录在这个服务器中,用户再次访问,每台tomcat 都从这个...

    tomcat7实现session共享所需jar包

    <Resource name="sessionCache" auth="Container" type="net.spy.memcached.MemcachedClient" factory="net.spy.memcached.compat.log.Log4JLoggerFactory" url="127.0.0.1:11211" maxElementsInMemory="10000...

    tomcat7+session共享(mencache)

    标题中的“tomcat7+session共享(mencache)”指的是在Tomcat 7版本中实现基于Memcached的Session共享。在分布式系统中,由于用户在不同服务器之间切换时需要保持会话状态,所以Session共享成为了一个重要的问题。...

    tomcat8 + nginx + memcached + cas 实现负载均衡的配置包

    1,tomcat8的配置: 1.1修改tomcat8.x/conf/context.xml的配置如下: <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file ...

    windows系统上nginx+memcached+tomcat的负载均衡

    本文将详细探讨如何在Windows操作系统上配置一个基于Nginx、Memcached和Tomcat的负载均衡架构,以实现高性能、高可用性以及资源优化。 **Nginx** Nginx是一款流行的开源Web服务器,以其高性能、低内存占用和反向...

    Tomcat实现session共享(session 会话复制)

    - 配置session复制:在Tomcat集群中配置session复制,可以在server.xml文件中启用这项功能,从而使得集群中的Tomcat服务器能够在必要时共享session信息。 - 配置缓存数据库:如果选择基于缓存的session共享方案,则...

    Nginx+tomcat7.0.22+memcached

    使用Nginx做的负载均衡,memcache做高速cache,tomcat7.0.22做web容器环境下的session共享及缓存。 能够做到重启tomcatsession不失效或多个tomcat应用下session共享。 该RAR包包含了配置所需要的全部jar文件。

    nginx反向代理配置及优化以及核心讲解以及高性能集群搭建

    3. **集中式Session存储**:使用如Memcached或Redis等分布式缓存,存储和共享Session数据,减轻单个服务器压力。 ### 五、总结 Nginx凭借其高效的反向代理和负载均衡能力,成为构建高性能网站和微服务架构的关键...

    Java中tomcat memecached session 共享同步问题的解决办法

    为了让Tomcat能够与Memcached通信并处理session序列化,需要在Tomcat的`lib`目录下添加相应的jar包,如:`javolution-5.4.3.1.jar`, `memcached-2.4.2.jar`, `memcached-session-manager-1.3.0.jar`, `msm-...

    Tomcat8-msm.zip

    即使用cacheDB存取session信息,应用服务器接受新请求将session信息保存在cache DB中,当应用服务器发生故障时,调度器会遍历寻找可用节点,分发请求,当应用服务器发现session不在本机内存时,则去cacheDB中查找,...

    java面试宝典

    24. **Cache技术**:Ehcache和Memcached的原理及使用。 25. **SQL优化**:涉及查询优化、索引的原理和使用。 26. **Oracle数据库**:理解rownum和rowid的区别,以及分页查询的方法。 27. **执行计划分析**:学习...

    百度历年面试题答案

    在Java应用服务器中,如Tomcat,Session数据通过`org.apache.catalina.session.ManagerBase`类进行管理,该类使用`HashMap`来存储Session,其中键为Session ID,值为`org.apache.catalina.Session`接口的实现,通常...

    Java软件开发工程师面试题宝典

    21. **Tomcat Session管理**:session通过cookie或URL重写维持,自定义session实现需考虑复制、过期、同步等问题。 22. **Cache**:Ehcache和Memcached为分布式缓存系统,用于提升系统性能。 23. **SQL优化**:...

    深入Memcache的Session数据的多服务器共享详解

    1. **配置Memcache服务器集群**:设置多个Memcache服务器节点,使用一致性哈希策略分配session数据,确保sessionid对应的数据始终存储在同一台服务器上。 2. **自定义session_id**:允许在启动session之前通过`...

    Java软件开发工程师面试题宝典.pdf

    21. **Tomcat Session管理**:了解Session的生命周期和在服务器间的复制,以及如何自定义Session管理。 22. **Cache(Ehcache, Memcached)**:缓存系统用于提高数据访问速度,理解它们的工作原理和配置。 23. **...

    高并发高流量网站架构

    对于高并发,可以选择使用集群,通过Session复制或共享存储来实现会话一致性。 再者,分布式服务框架如Dubbo或Spring Cloud,可以将大型应用拆分为微服务,每个服务独立部署和扩展,提高系统的灵活性和可维护性。...

    java开源包3

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

Global site tag (gtag.js) - Google Analytics