`
xiangxingchina
  • 浏览: 520444 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

集群对session有两种吧

1、基于request的负载均衡

    该种方式下,负载均衡器 (load balancer)会根据各个node的状况,把每个 http request进行分发。使用这样的均衡策略,就必须在多个node之间复制用户的session,实时保持整个cluster的用户状态同步,这种操作 被称为session复制(session replication)。Jboss的实现原理是使用拦截器(interceptor),根据用户的同步策略拦截request,做同步处理后再交给 server产生响应。

    该方法的优点是客户不会被绑定都具体的node,只要还有一个node存活,用户状态都不会丢失,cluster都能够继续工作。缺点是node之间通信频繁,响应速度有影响,多并发、高频操作的情况下性能下降比较厉害。

2、    基于用户的负载均衡

该 种方式下,当用户发出第一个request后,负载均衡器动态的把该用户分配到某个节点,并记录该节点的jvm路由,以后该用户的所有request都会 被绑定这个jvm路由,用户只会与该server发生交互,这种策略被称为粘性session(session sticky)。

该方法的优点是响应速度快,多个节点之间无须通信。缺点也很明显,某个node死掉以后,它负责的所有用户都会丢失session。

 

 

 

方案1,需要application server 支持,且开发时,要避免使用重型的Session来解决问题。

方案2,只需要apache来解决就可以了.

方案1 实际上需要 load-balance + session replication.

方案2 就只有load-balance了。

方案1应当是人们经常说的群集方案吧,必须要有软件支持吧。

方案2就是load-balance方案,可以基于硬件,也可以基于软件.

 

 

 

 

两个方案可以结合着来做:

前端apache使用session sticky方法保证同一用户总是导向同一个node,后端JBoss(注意不是Tomcat)配置异步session复制。

这样在通常情况下有apache保证请求可以达到hold该用户状态的node,而异步session复制有可以保证不影响性能,最后当该node fail以后,apache路由到其他node的时候,JBoss的异步复制又可以保证其他node已经拥有该用户状态。

不过对于大型的电子商务网站,apache基于HTTP协议层的load balance性能就撑不住了,这个时候可以考虑使用LVS,基于IP层协议的load balance,现在也支持session sticky(其实不需要基于session进行分发,只要基于IP进行分发就好了,用一个用户在一次session会话过程中不可能换IP的)。

分享到:
评论

相关推荐

    weblogic集群与Session共享.docx

    weblogic集群与Session共享,图文并茂,可视化配置,步骤详细,保姆级教程

    tomcat集群实现session复制

    在IT领域,特别是Web应用服务器的管理与优化中,Tomcat集群实现Session复制是一个关键的技术点,它确保了高可用性和负载均衡,特别是在处理大量并发请求的场景下。本文将深入探讨这一主题,涵盖其原理、配置方法以及...

    集群redis实现session共享jar包之tomcat8

    二、Tomcat集群与session复制 Tomcat本身支持集群部署,它通过` sticky session `策略来实现session共享。当用户请求到达时,会被定向到某一台特定的服务器,该服务器负责处理该用户的后续请求,确保session的一致...

    JBoss集群配置的Session复制

    #### 二、JBoss集群与Session复制的实现 ##### 1. 使用mod_jk实现负载均衡 JBoss集群通常与Apache HTTP服务器结合使用,通过mod_jk模块实现负载均衡。mod_jk是Apache的一个模块,它负责将HTTP请求转发到后端的...

    集群 redis实现 session的 jar包之tomcat7

    **一、集群与session共享** 在Web集群环境中,session共享是个挑战,因为用户的会话信息通常存储在单个服务器上。当用户请求路由到不同的服务器时,如果没有共享机制,会导致会话丢失。为了解决这个问题,我们可以...

    was集群session共享设置

    在was集群中,通常需要设置session共享,按照文档步骤可以完成session共享设置,解决你应用中的问题

    nginx tomcat集群 session复制

    【Nginx Tomcat集群与Session复制】 在高并发、高可用的Web应用环境中,使用Nginx作为负载均衡器,结合Tomcat集群是常见的架构选择。为了保证用户体验的连续性,Session复制技术用于在多个Tomcat实例之间共享用户...

    redis+tomcat集群配置session共享

    在分布式系统中,Session共享是一个重要的议题,尤其是在使用Redis与Tomcat构建的集群环境中。当用户在集群中的任一节点登录后,其Session信息需要在其他节点也能访问,以实现会话持久化,保证用户体验的一致性。本...

    tomcat集群session共享解决方案

    5. **Spring Session**:Spring框架提供了一个名为Spring Session的模块,它可以与各种后端存储(如Redis、MongoDB等)集成,实现跨服务器的session共享。Spring Session提供了API和注解,方便在Spring MVC或Spring ...

    apache的tomcat负载均衡(两个tomcat)和集群配置(session复制)

    **二、集群与Session复制** 在Tomcat集群中,为了保持用户会话在不同服务器间的同步,需要实现session复制。这可以通过以下方式实现: 1. **集群配置** - 在每个Tomcat实例的`server.xml`中,设置`<Engine>`、`...

    Tomcat7集群共享Session 基于redis进行统一管理

    在IT行业中,尤其是在Web...总的来说,利用Redis进行Tomcat集群Session共享是一种高效且灵活的方法,能够提高系统的可用性和用户体验。通过深入理解这一技术,开发者可以更好地构建和维护大规模分布式Web应用程序。

    tomcat-redis集群,session共享

    tomcat-redis集群时session共享jar工具类,支持tomcat8

    redis 集群共享Session

    本文将深入探讨“redis集群共享Session”的实现原理与步骤。 1. **Redis简介** Redis是一种高性能的键值数据库,支持多种数据结构如字符串、哈希、列表、集合和有序集合。由于其内存存储和高效的性能,Redis常被...

    tomcat8集群实现session共享,内含session共享包

    4. **测试与调试**:部署应用后,进行多实例间的跳转测试,确保Session数据在不同实例间能正确传递。 总之,实现Tomcat8集群中的Session共享是一个涉及到服务器配置、网络通信和数据存储的复杂过程。正确配置和选择...

    Redis + Tomcat + Nginx 集群实现 Session 共享.pdf

    Redis + Tomcat + Nginx 集群实现 Session 共享

    tomcat集群session共享

    以下是实现Tomcat集群session共享与Redis结合的步骤和知识点: 1. **配置Redis服务器**:首先,你需要安装并运行一个Redis实例。确保其稳定运行,并且能够被集群中的所有Tomcat服务器访问。 2. **选择session复制...

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

    通过本篇文档,读者应该能够获得构建基于Nginx+Tomcat+MSM的集群Session共享环境的知识,并能应用这些知识进行实际操作和测试。需要注意的是,在实际操作中,环境配置细节会根据具体需求和软件版本有所不同,因此在...

Global site tag (gtag.js) - Google Analytics