`

分布式下session 的管理

阅读更多

MSM--memcached session manager是一个高可用的Tomcat session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用memcached存取Session,以实现高可用。

对于非黏性Session,memcached直接存储session。

除memcached外,还可以其他缓存组件如memcachedbmembase等。

 特性

  支持Tomcat6、Tomcat7

 支持黏性、非黏性Session

   无单一故障点

         可处理tomcat故障转移

         可处理memcached故障转移

         插件式session序列化

         允许异步保存session,以提升响应速度

         只有当session有修改时,才会将session写回memcached

         JMX管理&监控

MSM解决的问题

假设你有一个Tomcat集群,使用黏性session,如何应对单点故障问题?为了应对更多的并发量和可用性,你可以不断的增加Tomcat节点,但是单点故障仍旧会是个问题:如果使用黏性Session,一个Tomcat故障时,其他Tomcat并不能接管故障Tomcat节点的Session。

解决此问题的思路就是将黏性Session同时保存在Memcached中,如果单个Tomcat发生故障,集群中的其他Tomcat可以从Memcached中得到Session信息。

     【注】对于非黏性Session,MSM  V1.4.0及以后版本已经支持。

MSM如何工作

     【注】以下论述仅针对黏性Session

安装在Tomcat上的MSM使用本机内存保存session,和StandardManager一样。另外,当一个请求结束时,session会被送回Memcached进行备份。当下一次请求开始时,本地Session可用,直接服务,请求结束后,session又被送回Memcached备份。

当集群中的一个Tomcat挂掉,下一次请求会被路由到其他Tomcat上。负责处理此此请求的Tomcat并不清楚Session的信息。此时它会从Memcached查找该Session,更新该Session并将其保存在本机内容。此次请求结束,session被修改,送回Memcached备份。

分享到:
评论

相关推荐

    阿里P7大牛实战演练到源码透析——分布式环境session丢失爬坑记

    在现代互联网应用中,随着业务规模的增长和技术架构的演进,单体应用逐渐演化为微服务架构,而这种架构变化带来的一个常见问题是分布式环境下的Session管理。本文将深入探讨分布式环境下Session丢失的问题及其解决...

    spring session redis分布式session

    为了解决这个问题,Spring Session提供了一种优雅的解决方案,特别是结合Redis作为持久化存储时,可以实现高效的分布式Session管理。本文将详细介绍Spring Session与Redis集成,以及如何自定义Session来应对分布式...

    基于ZooKeeper的分布式Session实现

    在分布式Session的场景下,ZooKeeper可以作为中央存储节点,保存用户的Session信息,使得各个服务器能够访问这些信息并保持一致。 1. **Session集中存储**: 在传统的单体应用中,Session通常存储在服务器本地或者...

    zookeeper实现分布式session sample

    通过以上讲解,我们可以看到Zookeeper在分布式session管理中的作用,它提供了一种高效、可靠的解决方案,使得用户在分布式系统中能够享受到无缝的体验。结合适当的优化策略,可以在保证系统性能的同时,实现高效的...

    分布式集群Session共享 简单多tomcat8+redis的session共享实现

    然而,这种部署方式会带来Session管理的挑战,因为Session数据通常存储在单个服务器的内存中,导致其他服务器无法访问。为了解决这个问题,我们可以利用外部存储,如Redis,来实现Session的共享。 首先,让我们来看...

    分布式session方案

    然而,在分布式系统中,Session 的管理变得复杂,因为用户的请求可能会被分配到不同的服务器上。 第一种:粘性 Session 粘性 Session 是指将用户锁定到某一个服务器上,例如当用户第一次请求时,负载均衡器将用户...

    分布式Session的一个实现.

    然而,当应用部署在多台服务器上时,单一服务器上的Session无法在其他服务器之间共享,这就导致了分布式环境下的Session管理问题。 解决这个问题的一种常见方法是使用分布式缓存,如Redis或Memcached。这两种工具...

    springboot+dubbo分布式架构,提供分布式缓存、分布式锁、分布式Session、读写分离

    缓存和Session:注解redis缓存数据,Spring-session和redis实现分布式session同步,重启服务会话不丢失。 数据同步:基于redis的分布式锁。 Web安全:实现XSS过滤和CSR过滤。 多系统交互:Dubbo,ActiveMQ多系统交互...

    43_说说你们的分布式session方案是啥?怎么做的?.zip

    分布式Session方案是现代大型Web应用中解决用户会话管理的关键技术。在单体应用时代,Session存储在服务器本地,但随着应用的分布式部署,这种模式不再适用,因为服务器集群之间无法共享Session数据,可能导致用户在...

    分布式环境下session解决方案1

    在构建分布式系统时,Session管理是一个重要的环节,因为它涉及到用户状态的保持和一致性。本文主要探讨了五种在集群/分布式环境下处理Session的策略,旨在提高用户体验并确保系统的稳定运行。 **1. 粘性Session** ...

    spring session实现分布式会话管理

    Spring Session 是一个开源项目,由 Pivotal 团队维护,它旨在提供一种在分布式环境中管理用户会话的解决方案。Spring Session 的核心理念是将传统的 HTTP Session 数据存储和管理从应用服务器迁移到更灵活、可扩展...

    分布式session 解决方案

    分布式Session解决方案是为了在分布式系统环境下实现用户会话的共享,以克服HTTP协议无状态的特性。在传统的Web应用中,Session通常存储在单个Web服务器的内存中,但在分布式环境中,用户请求可能会被负载均衡器分配...

    微服务架构下分布式Session管理

    Session一词直译为“会话”,意指有始有终的一系列动作/消息。Session是Web应用蓬勃发展的产物之一,...Session管理正是上述问题的解决方案,把用户的信息与状态保存在Session中,弥补了Web应用中HTTP协议的不足。Sessi

    分布式Session解决方案.docx

    在分布式系统中,Session管理是一...总的来说,分布式Session管理是现代Web应用不可或缺的一部分,通过合理选择和实施解决方案,我们可以确保用户在多服务器环境下的体验连贯一致,同时保证系统的可扩展性和高可用性。

    基于spring-cloud分布式session共享文档

    分布式Session共享是指在分布式环境下,多个节点之间能够共享用户的Session信息,确保用户无论访问哪个节点都能保持登录状态。这样即使用户在不同的服务器间跳转,也能维持一致的用户体验,避免重复登录等问题。 ##...

    改进基于filter的远程分布式session存储

    标题 "改进基于filter的远程分布式session存储" 涉及的是在Web开发中关于Session管理的一个重要主题。Session是Web应用程序中用于跟踪用户状态的一种机制,通常存储在服务器端,以便在用户的不同请求之间保持其数据...

    分布式session 共享

    总的来说,分布式Session共享是微服务架构中不可或缺的一部分,它涉及到如何在多个独立服务之间共享和管理用户的状态信息。常见的解决方案包括使用中央化的存储系统(如Redis),通过Token或JWT实现无状态认证,以及...

    采用Memcached实现分布式Session所需的jar包

    综上所述,采用Memcached实现分布式Session能够有效解决高并发场景下的Session管理问题,提高系统的可用性和性能。正确配置和使用相关jar包,如spymemcached,是实现这一目标的关键。同时,要充分理解分布式Session...

Global site tag (gtag.js) - Google Analytics