`
jianchen
  • 浏览: 344775 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

session同步

    博客分类:
  • J2EE
阅读更多

网站建设中在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就在网站建设中根据这种情况给出三种不同的集群方法来解决这个问题:

一,利用数据库同步session

1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的。

2,这种方法是把存放session的表和其他数据库表放在一起,如果mysql也做了集群了话,每个mysql节点都要有这张表,并且这张session表的数据表要实时同步。

说明:用数据库来同步session,会加大数据库的负担,数据库本来就是容易产生瓶颈的地方,如果把session还放到数据库里面,无疑是雪上加霜。上面的二种方法,第一点方法较好,把放session的表独立开来,减轻了真正数据库的负担

二,利用cookie同步session

session是存放在服务器端的,cookie是存放在客户端的,怎么实现同步呢?方法很简单,就是把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session把它放到cookie里面了,你访问被分配到web服务器B,这个时候,web服务器B先判断服务器有没有这个session,如果没有,在去看看客户端的cookie里面有没有这个session,如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服务器B,这样就可以实现session的同步了。

说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,但是还是可以伪造的。

三,利用memcache同步session

memcache可以做分布式,如果没有这功能,他也不能用来做session同步。他可以把web服务器中的内存组合起来,成为一个”内存池”,不管是哪个服务器产生的sessoin都可以放到这个”内存池”中,其他的都可以使用。

优点:以这种方式来同步session,不会加大数据库的负担,并且安全性比用cookie大大的提高,把session放到内存里面,比从文件中读取要快很多。

缺点:memcache把内存分成很多种规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。

 

四,总结

上面三种方法都是可行的

第一种方法,最影响系统速度的那种,网站开发中不推荐使用;

第二种方法,效果不错,不过安全隐患一样的存在;

第三种方法,个人觉得第三种方法是最好的,网站制作中推荐大家使用

分享到:
评论

相关推荐

    Tomcat8 session同步测试,配置好的Tomcat

    标题提到的"Tomcat8 session同步测试"是指在多台Tomcat服务器之间共享用户session状态的技术。这在分布式系统中尤其重要,因为用户在浏览网站时,可能会在不同服务器间跳转,保持session一致性可以提供无缝的用户...

    针对分布式或集群session同步问题,改用jwt的续期解决方案.docx

    ### 针对分布式或集群Session同步问题:JWT续期解决方案 #### 一、背景介绍 随着前后端分离架构的普及和技术的发展,越来越多的应用选择使用轻量级的身份验证方法来确保数据安全。其中,JSON Web Token (JWT) 成为...

    nginx+tomcat+session同步

    "nginx+tomcat+session同步" bản文中,我们将详细讨论使用nginx和tomcat实现session同步的方法。 首先,让我们了解什么是session同步。Session同步是指在多台服务器上共享用户会话状态,以确保用户在不同服务器...

    微信小程序用户登录、注册、SESSION同步、交互等

    综上所述,微信小程序的登录、注册和SESSION同步涉及前后端多个步骤的交互,需要确保数据安全性和用户体验。SpringMVC作为后端框架,提供了方便的SESSION管理机制,帮助开发者实现用户身份的跟踪和维护。

    Apache+Tomcat实现负载均衡及集群(session同步)--五、session同步(3)使用memcache

    在这个场景中,session同步是一个核心问题,因为用户session数据的正确管理和共享是保持应用程序一致性和用户体验的关键。本文将深入探讨如何使用memcache来实现Apache+Tomcat环境下的session同步。 首先,我们来...

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    memcached +tomcat7.52 session同步

    【标题】:在Tomcat 7.52中使用memcached进行Session同步 【内容】: 在现代Web应用中,Session同步是确保用户状态在集群环境中一致性的关键。当一个应用部署在多台服务器上时,传统的session管理方式可能会导致...

    Tomcat+redis、session同步

    本文将深入探讨如何将`Tomcat`与`Redis`结合,实现`session`同步,以提升应用的可扩展性和性能。 `Tomcat`默认使用内存中的`session`来保存用户状态信息,但这种方式在分布式环境中存在局限性,例如无法跨服务器...

    集群中几种session同步解决方案的比较共1页.pdf

    在分布式系统和Web服务中,Session同步是确保用户在不同服务器之间切换时保持登录状态和购物车信息等关键数据一致性的关键问题。集群环境下的session管理对于提高系统的可扩展性和可用性至关重要。以下是对集群中几...

    tomcat8.0+redis做session同步的jar包

    标题中的“tomcat8.0+redis做session同步的jar包”揭示了这个技术解决方案是关于使用Apache Tomcat 8.0版本与Redis缓存系统来实现会话(session)同步。这种设置常用于分布式环境,确保用户在集群中的任何服务器上的...

    Tomcat8+redis做session同步

    `Tomcat8+Redis`的组合提供了解决方案,利用Redis作为中央缓存来实现`session`同步。`Tomcat8`是Apache软件基金会的开源Java Servlet容器,而`Redis`是一个高性能的键值存储系统,常用于数据缓存、消息队列等多种...

    使用terracotta进行web session 同步

    【标题】:“使用Terracotta进行Web Session同步” 在分布式Web应用环境中,用户会话(Session)的共享和同步是一个重要的挑战。Terracotta是一款开源软件,它提供了一种高效且可靠的解决方案,允许在集群环境中...

    tomcat7 jedis session 同步

    在IT行业中,尤其是在Web应用程序开发领域,服务器集群和Session同步是关键问题,特别是在高可用性和负载均衡的场景下。本文将深入探讨如何在Tomcat7环境下利用Jedis实现Session的同步,以确保用户会话在多台服务器...

    tomcat-session同步所需jar.rar_session集群共享_tomcat session

    "tomcat-session同步所需jar.rar_session集群共享_tomcat session"这个标题表明我们关注的是如何在Tomcat集群环境中实现session的共享。这涉及到多个知识点,包括session的基本概念、session复制、粘滞会话、以及...

    tomcat使用memcached配置session同步的所有jar包

    tomcat使用memcached配置session同步的所有jar包,里面有asm-5.2.jar、kryo-4.0.0.jar、kryo-serializers-0.38.jar、memcached-session-manager-1.9.7.jar、minlog-1.3.0.jar、msm-kryo-serializer-1.9.7.jar、...

    Tomcat8+Redis Session同步需要的jar

    这里提到的"Tomcat8+Redis Session同步"就是一种解决策略,它利用Redis作为中央缓存来存储Session数据,从而在Tomcat8集群中实现Session的共享。 **一、Tomcat8** Tomcat8是Apache软件基金会的Tomcat服务器的第8个...

    Tomcat、Redis session同步所需jar

    在这个场景下,"Tomcat、Redis session同步所需jar"提到了三个关键的Java库,它们是实现Tomcat(一个流行的开源Java Servlet容器)与Redis(一个高性能的键值数据库)之间session同步的关键组件。接下来,我们将深入...

    nginx+ tomcat + redis-cluster 实现session同步所需的jar包

    在构建分布式系统时,Session同步是一个关键问题,特别是在使用多个应用服务器如Nginx、Tomcat的情况下。这里我们将深入探讨如何使用Nginx、Tomcat和Redis-Cluster来实现Session同步,以及涉及到的jar包的作用。 ...

Global site tag (gtag.js) - Google Analytics