1、Session的实现

在Session开始时候,分配一个唯一的Session标识sessionId,通过Cookie把 sessionId 告诉浏览器,以后每次请求的时候,浏览器都会带上 sessionId 告诉web服务器,这个请求属于哪个Session。

在web 服务器上,每个Session都有独立的存储,保存不同的Session信息。

如果遇到禁用Cookie的情况,一般做法是把sessionId方法 放到 URL 参数中。

2、集群的Session 问题的解决方案

因为Session数据保存在单机上,当应用服务器变成多台之后,要保证对用户透明。

(1)、Session 粘贴

负载均衡器根据每次请求的Session进行转发,即保证同一Session请求都在同一台Web 服务器上处理,那么对这个Session个体来说,与之前安单机的情况是一致的。

优点:简单容易实现,有利于服务器端本地对Session进行缓存。

缺点:(a)、如果集群上有一台服务器down,则上面的Session数据全部丢失,用户需要重新登录。

(b)、负载均衡器需要解析Session的请求,开销很大

(c)、负载均衡器变成了有状态的节点,内存消耗大,容灾麻烦。

(2)、Session 复制

Web服务器进行Session数据同步,即同一个Session的数据会复制到所有的Web服务器上。

优点:负载均衡器压力较小。

缺点:(a)、同步Session 需要更多网络通信。

(b)、每个Web服务器都要保存所有数据,内容过多。

(3)、Session 数据集中存储

与Session Replication类似,但Session不保存在每台Web服务器中,而是保存在另外地方,如 Redis 数据库等。

优点:相比比Session 复制,网络带宽、内存消耗都少。

缺点:(a)、读写Session数据必须使用网络操作,存在延时和不稳定性。

(b)、若存储Session的机器出现问题,则Web 应用也出问题。

(4)、使用Cookie

把Session 数据放在Cookie 中,对敏感信息进行加密。

优点:不依赖外部系统,无时延,无稳定性问题。

缺点:(1)、Cookie有长度限制。

(2)、安全性:Session本应该存在服务器端,现在却放在客户端,虽然加密,但是还是能被客户端访问到。

(3)、有带宽消耗

(4)、性能影响:每次HTTP请求与相应都必须带Session数据。

在实际中,一般使用Session粘贴、Session 集中存储

转载于:https://www.cnblogs.com/leeeee/p/7276417.html

分布式集群的Session问题相关推荐

  1. PHP 分布式集群中session共享问题以及session有效期的设置

    一.Session的原理 以下以默认情况举例: session_start();之后,会生成一个唯一的session_id,每一个用户对应唯一一个session_id,每一个session_id对应服 ...

  2. java集群session共享_分布式/集群下session共享方案汇总

    1.F5 BIG-IP 硬件实现session粘性复制 F5 硬件,可以作为HTTP负载均衡器使用,可以将用户IP与Session通过F5进行的绑定,使其Session保持一致性.是直接通过智能交换机 ...

  3. asp.net mvc 用Redis实现分布式集群共享Session。

    1.这两天研究Redis搞分布式session问题,网上找的资料都是用ServiceStack.Redis来实现的,但是在做性能测试的时候发现最新的v4版本有限制每小时候最多请求6000次,因为官网开 ...

  4. 分布式集群环境下,如何实现session共享三(环境搭建)

    这是分布式集群环境下,如何实现session共享系列的第三篇.在上一篇:分布式集群环境下,如何实现session共享二(项目开发)中,准备好了一个通过原生态的servlet操作session的案例.本 ...

  5. 技术干货实战(4)- 分布式集群部署模式下Nginx如何实现用户登录Session共享(含详细配置与代码实战)

    原文链接:技术干货实战(4)- 分布式集群部署模式下Nginx如何实现用户登录Session共享(含详细配置与代码实战) 最近有小伙伴催更,让debug多写点技术干货,以便多学习.巩固一些技能:没办法 ...

  6. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

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

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

  8. 搭建hbase1.2.5完全分布式集群

    简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...

  9. ZooKeeper伪分布式集群安装及使用

    为什么80%的码农都做不了架构师?>>>    ZooKeeper伪分布式集群安装及使用 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在V ...

最新文章

  1. 利用Python绘制萌萌哒的皮卡丘
  2. 使用STM32CubeMX求得CPU芯片温度
  3. [设计模式]设计模式之禅关于迪米特法则
  4. 平衡二叉树(AVL)--查找、删除、插入(Java实现)
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1044:判断是否为两位数
  6. HDOJ1907 SG问题
  7. 从根本上了解异步编程体系
  8. OA办公自动化系统~~~SSM整合开发
  9. 解决办法:configure后,没有更新Makefile
  10. STM32F407过程记录
  11. emouse思·睿—评论与观点整理之四
  12. vue.js毕设项目利器,路过给个star
  13. 计算机操作系统教程徐甲同pdf,《操作系统实践教程》.pdf
  14. ZXP个人美工作品---->
  15. Chrome 谷歌浏览器 google 复制网页上禁止复制的文本
  16. 手机微信群控系统和云控详细说明
  17. mybatisPlus实现创建时间、更新时间自动添加
  18. android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法
  19. idea右侧没有maven,main方法无启动图标解决方法
  20. SHEN ZHEN归来!

热门文章

  1. Java修饰符:public,protected,private,不加修饰符的区别
  2. Spring Ioc 之 Bean的加载(3):createBean()
  3. 汇编语言标识符及其命名规则
  4. Java虚拟机(JVM)以及跨平台原理
  5. 区块链去中心化有那么有用吗?
  6. Smalidea+IntelliJ IDEA/Android Studio无源码调试
  7. flex 文字竖排_flex button字竖排展示
  8. mysql 没有mysql库_MySQL安装之后没有MySQL数据库的原因
  9. weblogic服务器修改ip,修改weblogic服务器ip地址
  10. Cortex-A 的内核寄存器组