web集群时session同步的3种方法

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

一,利用数据库同步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不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。

四,总结

上面三种方法都是可行的

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

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

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

转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/922.html

web集群时session同步的3种方法相关推荐

  1. 关于 tomcat 集群中 session 共享的三种方法

    前两种均需要使用 memcached 或 redis 存储 session ,最后一种使用 terracotta 服务器共享. 建议使用 redis ,不仅仅因为它可以将缓存的内容持久化,还因为它支持 ...

  2. [转载]web集群时利用memcache来同步session

    web集群时session同步的3种方法 在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话 ...

  3. Shiro结合Redis解决集群中session同步问题

    Shiro结合Redis解决集群中session同步问题 参考文章: (1)Shiro结合Redis解决集群中session同步问题 (2)https://www.cnblogs.com/Luke-M ...

  4. 集群服务器session同步

    事实上,网站总是有状态的.每一个登录信息.用户信息常常被存储在session内部.而当一个网站被部署在不止一台服务器的时候,就会遇到session同步的问题.事实上即使一个很小的网站,也要至少有两台服 ...

  5. Weblogic12C 集群实现session同步

    测试地址:http://vanatita.com/ 刷新可以看见效果 读取 Session ID=gnFx9OTVFkfNOWCXFqQqeZi07m9BdHhvnqCv0Cq1t3n1EA2ljUG ...

  6. vSphere Web Client 添加主机进VSAN集群时“SAN 主机移至目标群集: vSAN 群集的 UUID 不匹配”报错

    vSphere Web Client 添加主机进VSAN集群时,报"无法将 vSAN 主机移至目标群集: vSAN 群集的 UUID 不匹配 (主机: 5223a6c9-cf94-f978- ...

  7. 如何实现 集群化/Session 复制-doc(cluster-howto.html)

    源文档链接: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html 翻译日期: 2014年3月19日 翻译人员: 铁锚 感受: Tomc ...

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

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 [http://blog.csdn.net/shimiso/article/details/8979044] 为什 ...

  9. RHCS+Conga+GFS+cLVM共享存储的高可用性web集群

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sohudrgon.blog.51cto.com/3088108/1599984 ...

最新文章

  1. 新型智能电视攻击,9成国外设备或受影响
  2. torch拼接合并 cat优化记录
  3. h5课件制作_一个好的h5交互课件该怎么制作
  4. python代码技巧_让你python代码更快的3个小技巧
  5. bios升级工具_雨林木风U盘启动盘装系统制作工具再次升级。。。
  6. spring aop源码分析
  7. mysql桦仔_Microsoft SQL Server 2005技术内幕:T-SQL查询笔记
  8. 分蛋糕问题 —— 9 个烧饼分给 10 个人
  9. efm32芯片电压_Silicon Labs超低功耗32位 MCU EFM32HG系列成功应用在大华股份无线烟感...
  10. 软件工程之软件设计③(概要设计说明书,详细设计说明书)
  11. 使用ppt将输入的文字导出png
  12. 勾股定理算斜边用计算机怎么按,三角形斜边(直角三角形斜边计算器)
  13. 尚学堂JAVA高级学习笔记_2/2
  14. C语言单元作业的答案,C语言习题全集+答案.doc
  15. 《谷歌大数据经典论文读后感》
  16. [面试专题]前端需要知道的web安全知识
  17. 保持一张干净的脸部!
  18. 什么从什么写短句_什么是什么,能什么写句子补充完整
  19. android最新版本6,keep安卓官方最新版
  20. 【DSP数字信号处理学习笔记】—— 详细推导DFT的快速实现算法:FFT 基于库利-图基算法的实现

热门文章

  1. oracle外部表使用详解,详解Oracle外部表的一次维护(图文)
  2. linux 共享内存函数封装,linux ftok()函数 --多进程IPC之共享内存
  3. java 3gpp转mp3_Android音频以及音频播放器开发实例
  4. 一文看懂docker容器技术架构及其中的各个模块
  5. 使用Python,dlib,OpenCV在实时的视频流中进行面部标志检测
  6. 基于颜色特征,形状特征和纹理特征的数字图像的检索(Digital Image Retrieval)MATLAB GUI实现(本科毕业设计)
  7. CS131-专题7:图像特征(SIFT算法)
  8. 笔记,提醒,pytorch安装命令(conda)
  9. java avl_Java底层实现AVL 平衡二叉树
  10. 合作交流的好处_孩子都喜欢玩“过家家”,这种儿科游戏,对孩子来说好处多多...