分布式Session共享有哪些具体解决方案?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1106个文字,预计阅读时间需要5分钟。
想要解决分布式Session共享的问题,首先我们需要了解Session的工作原理。了解了原理后,我们可以探讨以下三个问题:
1. Tomcat中的Session存储在哪里? 答案:存储在Tomcat本地的ConcurrentHashMap中。
想解决分布式Session共享的问题,首先我们需要先知道Session的工作原理是什么:
了解了原理之后,问自己三个问题:
1、Tomcat中的Session保存在哪?
答:存储在Tomcat本地的ConcurrentHashMap中(本地缓存),以sessionid为key。
2、Tomcat是怎么追踪到请求是属于哪个Session?
答:通过cookie产生会话时向浏览器发送存有sessionid的cookie,后续请求都带上这个cookie。
3、Session是不是在用户登录时就产生了?
答:不是,会话是用来跟踪多个请求的,登录只是明确会话是谁(把用户信息存放到session中)。
那为什么需要进行session共享呢?这就的从分布式集群部署说起了。。。
简单的集群部署的架构如下图所示:
简单说一下上面的架构,有一个关键点是反向代理,简单理解反向代理,就是为集群找个代理,接收用户请求,再分发给集群中的服务器。
本文共计1106个文字,预计阅读时间需要5分钟。
想要解决分布式Session共享的问题,首先我们需要了解Session的工作原理。了解了原理后,我们可以探讨以下三个问题:
1. Tomcat中的Session存储在哪里? 答案:存储在Tomcat本地的ConcurrentHashMap中。
想解决分布式Session共享的问题,首先我们需要先知道Session的工作原理是什么:
了解了原理之后,问自己三个问题:
1、Tomcat中的Session保存在哪?
答:存储在Tomcat本地的ConcurrentHashMap中(本地缓存),以sessionid为key。
2、Tomcat是怎么追踪到请求是属于哪个Session?
答:通过cookie产生会话时向浏览器发送存有sessionid的cookie,后续请求都带上这个cookie。
3、Session是不是在用户登录时就产生了?
答:不是,会话是用来跟踪多个请求的,登录只是明确会话是谁(把用户信息存放到session中)。
那为什么需要进行session共享呢?这就的从分布式集群部署说起了。。。
简单的集群部署的架构如下图所示:
简单说一下上面的架构,有一个关键点是反向代理,简单理解反向代理,就是为集群找个代理,接收用户请求,再分发给集群中的服务器。

