`
huangyongxing310
  • 浏览: 475342 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Session共享

阅读更多
Session共享


1.session是保存在服务器上的。
2.存储在服务器的内存中,tomcat的StandardManager类将session存储在内存中,也可以持久化到file,数据库,memcache,redis等。客户端只保存sessionid到cookie中,而不会保存session,session销毁只能通过invalidate或超时,关掉浏览器并不会关闭session。
3.memcached和redis都有自己的过期时间设置,适合用地保存session


session共享的几种思路,我总结如下:
1.把原来存储在服务器磁盘上的session数据存储到客户端的cookie中去。
(1)数据保存在cookie中这种做法有好处,也有坏处。
(2)好处是服务器的压力减小了,因为session数据不存在服务器磁盘上。根本就不会出现session读取不到的问题。
(3)带来的弊端是:网络请求占用很多。每次请求时,客户端都要通过cookie发送session数据给服务器。另外,浏览器对cookie的大小(4k)存在限制。每个浏览器限制是不同的。

2.分发机制来实现,也叫做sticky模式(粘性会话模式),同一个用户的访问请求都被派送到同一个服务器上。
(1)如果这台机子挂掉了,那么后续的请求按照session的规则还是会分发到这台服务器上去,但是现在不可用了。
(2)

3.做一个中间层,专门来存储所有访问涉及到的session。(就是所有session保存到同一个地方,而不是存在本地应用服务器)


如果不用session也可以用自己做一套,生成一个ID保存到cookie,请求到来时从cookie得到ID,从缓存中得到这个ID对应的信息,再用过滤器或应用中使用这些信息就可以了


参考原文(session多服务器共享的方案):http://www.cnblogs.com/wangtao_20/archive/2013/10/29/3395518.html
参考原文(sessionid如何产生?由谁产生?保存在哪里?):http://www.cnblogs.com/woshimrf/p/5317776.html

https://blog.csdn.net/a60782885/article/details/70244305(使用Spring Session redis进行Session共享)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics