Seesion 集中式的管理

集中式的Seesion管理

此次给平台升级将原先Cookie会话,切换到集中式的Session管理
技术使用:redis或者zookeeper存储会话数据

1.会话
所谓会话,即用户访问应用时保持的链接关系,在屡次交互中应用可以识别出当前访问的用户是谁,且能够在屡次交互中保存一些数据。如访问一些网站时登陆成功后,网站能够记住用户,且在退出以前均可以识别当前用户是谁。

2.技术实现
 二种方式实现:
 1.重写Servlet容器session的方案
 2.放弃Servlet容器的会话管理,本身维护着会话

3.Servlet方案
 1.继承HttpServletRequestWrapper类,从新实现getSession的两个方法 2.本身实现SessionManager,来控制sessinid 3.经过Filter拦截器替换ServletRequest的实现,完成代理模式 4.后台有个任务线程去删除用户最后一次时间跟当前时间比较比较,超过设置的过时时间的用户session

4.自定义实现
 1.建立一个SessionIdGenerator用来生成sessionId。并存入此用户的cookie中,此惟一标识惟一对应着某一个用户
 2,生产的sessionId存放到服务器中心服务器上
 3.客户每次请求都将cookie与请求一块儿传输到服务器上,服务器经过sessionid去redis或者zookeeper查询
 4.每一个请求都须要更新此用户请求的时间
 5.后台有个任务线程去删除用户最后一次时间跟当前时间比较比较,超过设置的过时时间的用户session
 这个方式作的好的话,能够每台服务器也存储一个session,经过中心session服务器跟本地seesion双重验证提升效率
相关文章
相关标签/搜索