分布式Session框架

在大型互联网系统中,单独使用Cookie和Session都是不可行的
如果使用Cookie,可以解决分布式部署的问题。
Cookie是将值存储在客户端的浏览器里,用户每次访问都会将最新的值带给处理请求的服务器,也就解决了同一个用户的请求可能不在同一台服务器处理而导致的Cookie不一致的问题。

Cookie存在的问题

  • 客户端Cookie存储限制,超过限制就会丢弃Cookie
  • Cookie管理混乱,如果每个应用系统都自己管理每个应用使用的Cookie,由于通常应用系统都在同一个域名下,Cookie又有存储限制,如果没有统一管理,很容易出现Cookie丢弃
  • 安全问题,Cookie存储在客户端,很容易被篡改

实现

需要一个订阅服务器,在应用启动的时候可以从这个订阅服务器订阅这个应用需要的Session项和Cookie项,这样可以精准的控制哪些应用可以操作哪些Session和Cookie
由于应用是一个集群,所以不可能将创建的Session都保存在每台应用服务器的内存中,因为如果每台服务器有几十万的访问用户,那么服务器的内存肯定不够用,即使内存够用,这些Session也无法同步。所以要共享Session必须将其存储到一个分布式缓存中,可以随时写入和读取,而且性能要满足要求。
## Session和Cookie的存取 ##
配置一个SessionFilter,用于封装request和response对象,并创建Session对象,设置到里面。
在请求完成时,再把Session的所有内容更新到分布式缓存中。

跨域名共享Cookie ##

实现Session同步, 需要一个跳转功能,这个应用可以被多个域名访问,主要功能是从一个域名下取得SessionID也就是Cookie,然后同步到另外一个域名下。
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值