统一会话

统一会话

系统在分布式部署之后,就会存在客户端访问同一个URL可能被分配到不同的机器上,如果没有同意会话问题,
就会导致用户时而登陆,时而未登陆的情况,因此需要使用统一会话来解决这个问题。

解决问题的思路

  • 使用hash算法,保证相同的IP能够永久访问到同一台机器

    • 实现方式:使用Nginx的IP_Hash算法
    • 使用情况: 比较适用服务器比较少,比较简单的服务
    • 缺点: IP自身的不可信,可能使用代理 局域网的问题
  • 使用统一的会话管理,将会话的数据保存到公共的地方,

    • 使用Memcached redis实现缓存
    • 缺点:依赖浏览器的cookie 需要保证缓存的高可用性
  • 把会话的数据保存到cookie中

    • 需要使用序列化技术
    • 缺点: 严重依赖cookie 导致数据量传输过大 安全性比较低

继续现实原因,基本上使用第二种方案,统一的会话管理

统一会话管理的实现方式

  1. 检查cookie里面是否存在JessionID
  2. 如果有,根据JSessionId直接对对应的session
  3. 如果没有,创建一个新的JessionId,跟一个新的session关联,将JSessionId和session保存到缓存
  4. 返回客户端的时候,带着这个JessionId

统一会话管理的问题

  1. 用户关闭了cookie
  2. cookie安全性问题
  3. 跨域访问cookie
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值