会话管理的简介

一、会话管理介绍

1.了解cookie和session

在这里插入图片描述

2.cookie工作图

在这里插入图片描述

3.session工作图

在这里插入图片描述

4.分布式项目不用session的原因

在这里插入图片描述

每个session只存在于自身服务器当中,比如A创建了一个session,并将sessionID传给了客户端;客户端再次带着sessionID请求的话,负载均衡将其请求分给了另一台服务器,此时这台服务器里并没有对应的sessionID,或者创建的session里面数据不对应,那么就不好办了!

通常我们会被服务器做一个集群,浏览器与服务器之间也会做一个代理服务器,用于对服务器集群的负载均衡。
此时服务器集群之间的session之间共享就会有以下方式:

  • 粘性session
    一个固定的sessionID永远分给同一个服务器处理;
    问题:很难保障服务器之间是负载均衡的
  • 同步session
    某一个服务器创建session并且有数据以后,就会把这个session同步给其他服务器
    问题:服务器性能有影响,session对内存压力大;服务器之间会产生耦合,不再是那么独立的
  • 共享session
    再拿出一台服务器,不处理普通业务,只用来处理session,其他服务器都向这一台服务器获取session
    问题:这台服务器是单体的,一旦挂了,其他服务器都不好工作了;如果就这个服务器做负载均衡就没意义,又和之前一样了;
  • 主流办法
    把客户端的身份就不存到session里去了,能存cookie就存到cookie里;一些敏感数据不方便存到cookie里,就存到数据库里,这时再对数据库做一个集群,所有服务器都访问数据库集群来得到关于客户端会话的数据:
    缺点:因为传统的关系型数据库都是把数据存到硬盘里,访问数据就会慢;
    所以使用非关系型数据库,数据存到内存中,访问速度非常快,比如redis
    整个服务架构就是这样:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

11_1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值